Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all 7251 articles
Browse latest View live

Очень долго строится план exec sp_executesql

$
0
0
Здравствуйте.

Просьба не переносить в тему 1С, т.к. вопрос конкретно по MS SQL! И проблема именно в MS SQL !!!! Все вызовы делаются с MS SQL M Studio !!!! В ветке 1С знатоков MS SQL не найдется столько.


При построении плана данного запроса уходит от 1 до 2 мин на приличном сервере (96 Гб ОЗУ, куча процов и тп)
Сами таблицы практически пустые!

После построения плана - работает пулей.
Индексы все есть, перестраивал и тп.
Если сокращать кол-во джоинов (урезать запрос до 20 Join) - то делается быстро! Но таблица то одна и та же!

Что можете посоветовать?


+

exec sp_executesql N' SELECT
T1._Document457_IDRRef,
T1._Fld15335,
T1._LineNo15322,
T1._Fld15323RRef,
T1._Fld15324,
T1._Fld15325_TYPE,
T1._Fld15325_RTRef,
T1._Fld15325_RRRef,
T1._Fld15326,
T1._Fld15327,
0.0,
T1._Fld15330RRef,
T1._Fld15329,
T1._Fld15333RRef,
T1._Fld15332,
CAST(SUM(ISNULL(CAST(T2._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T3._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T4._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T20._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T21._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T22._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T23._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T24._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T5._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T6._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T7._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T8._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T9._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T10._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T11._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T12._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T13._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T14._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T15._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T16._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T17._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T18._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8)),
CAST(SUM(ISNULL(CAST(T19._Fld15348 AS NUMERIC(12, 2)),0.0)) AS NUMERIC(24, 8))
FROM dbo._Document457_VT15321 T1
LEFT OUTER JOIN dbo._Document457_VT15344 T2
ON ((((T1._Document457_IDRRef = T2._Document457_IDRRef) AND (T1._Fld15335 = T2._Fld15349)) AND (T2._Fld15346RRef = @P1))) AND (T2._Fld847 = @P2)
LEFT OUTER JOIN dbo._Document457_VT15344 T3
ON ((((T1._Document457_IDRRef = T3._Document457_IDRRef) AND (T1._Fld15335 = T3._Fld15349)) AND (T3._Fld15346RRef = @P3))) AND (T3._Fld847 = @P4)
LEFT OUTER JOIN dbo._Document457_VT15344 T4
ON ((((T1._Document457_IDRRef = T4._Document457_IDRRef) AND (T1._Fld15335 = T4._Fld15349)) AND (T4._Fld15346RRef = @P5))) AND (T4._Fld847 = @P6)
LEFT OUTER JOIN dbo._Document457_VT15344 T5
ON ((((T1._Document457_IDRRef = T5._Document457_IDRRef) AND (T1._Fld15335 = T5._Fld15349)) AND (T5._Fld15346RRef = @P7))) AND (T5._Fld847 = @P8)
LEFT OUTER JOIN dbo._Document457_VT15344 T6
ON ((((T1._Document457_IDRRef = T6._Document457_IDRRef) AND (T1._Fld15335 = T6._Fld15349)) AND (T6._Fld15346RRef = @P9))) AND (T6._Fld847 = @P10)
LEFT OUTER JOIN dbo._Document457_VT15344 T7
ON ((((T1._Document457_IDRRef = T7._Document457_IDRRef) AND (T1._Fld15335 = T7._Fld15349)) AND (T7._Fld15346RRef = @P11))) AND (T7._Fld847 = @P12)
LEFT OUTER JOIN dbo._Document457_VT15344 T8
ON ((((T1._Document457_IDRRef = T8._Document457_IDRRef) AND (T1._Fld15335 = T8._Fld15349)) AND (T8._Fld15346RRef = @P13))) AND (T8._Fld847 = @P14)
LEFT OUTER JOIN dbo._Document457_VT15344 T9
ON ((((T1._Document457_IDRRef = T9._Document457_IDRRef) AND (T1._Fld15335 = T9._Fld15349)) AND (T9._Fld15346RRef = @P15))) AND (T9._Fld847 = @P16)
LEFT OUTER JOIN dbo._Document457_VT15344 T10
ON ((((T1._Document457_IDRRef = T10._Document457_IDRRef) AND (T1._Fld15335 = T10._Fld15349)) AND (T10._Fld15346RRef = @P17))) AND (T10._Fld847 = @P18)
LEFT OUTER JOIN dbo._Document457_VT15344 T11
ON ((((T1._Document457_IDRRef = T11._Document457_IDRRef) AND (T1._Fld15335 = T11._Fld15349)) AND (T11._Fld15346RRef = @P19))) AND (T11._Fld847 = @P20)
LEFT OUTER JOIN dbo._Document457_VT15344 T12
ON ((((T1._Document457_IDRRef = T12._Document457_IDRRef) AND (T1._Fld15335 = T12._Fld15349)) AND (T12._Fld15346RRef = @P21))) AND (T12._Fld847 = @P22)
LEFT OUTER JOIN dbo._Document457_VT15344 T13
ON ((((T1._Document457_IDRRef = T13._Document457_IDRRef) AND (T1._Fld15335 = T13._Fld15349)) AND (T13._Fld15346RRef = @P23))) AND (T13._Fld847 = @P24)
LEFT OUTER JOIN dbo._Document457_VT15344 T14
ON ((((T1._Document457_IDRRef = T14._Document457_IDRRef) AND (T1._Fld15335 = T14._Fld15349)) AND (T14._Fld15346RRef = @P25))) AND (T14._Fld847 = @P26)
LEFT OUTER JOIN dbo._Document457_VT15344 T15
ON ((((T1._Document457_IDRRef = T15._Document457_IDRRef) AND (T1._Fld15335 = T15._Fld15349)) AND (T15._Fld15346RRef = @P27))) AND (T15._Fld847 = @P28)
LEFT OUTER JOIN dbo._Document457_VT15344 T16
ON ((((T1._Document457_IDRRef = T16._Document457_IDRRef) AND (T1._Fld15335 = T16._Fld15349)) AND (T16._Fld15346RRef = @P29))) AND (T16._Fld847 = @P30)
LEFT OUTER JOIN dbo._Document457_VT15344 T17
ON ((((T1._Document457_IDRRef = T17._Document457_IDRRef) AND (T1._Fld15335 = T17._Fld15349)) AND (T17._Fld15346RRef = @P31))) AND (T17._Fld847 = @P32)
LEFT OUTER JOIN dbo._Document457_VT15344 T18
ON ((((T1._Document457_IDRRef = T18._Document457_IDRRef) AND (T1._Fld15335 = T18._Fld15349)) AND (T18._Fld15346RRef = @P33))) AND (T18._Fld847 = @P34)
LEFT OUTER JOIN dbo._Document457_VT15344 T19
ON ((((T1._Document457_IDRRef = T19._Document457_IDRRef) AND (T1._Fld15335 = T19._Fld15349)) AND (T19._Fld15346RRef = @P35))) AND (T19._Fld847 = @P36)
LEFT OUTER JOIN dbo._Document457_VT15344 T20
ON ((((T1._Document457_IDRRef = T20._Document457_IDRRef) AND (T1._Fld15335 = T20._Fld15349)) AND (T20._Fld15346RRef = @P37))) AND (T20._Fld847 = @P38)
LEFT OUTER JOIN dbo._Document457_VT15344 T21
ON ((((T1._Document457_IDRRef = T21._Document457_IDRRef) AND (T1._Fld15335 = T21._Fld15349)) AND (T21._Fld15346RRef = @P39))) AND (T21._Fld847 = @P40)
LEFT OUTER JOIN dbo._Document457_VT15344 T22
ON ((((T1._Document457_IDRRef = T22._Document457_IDRRef) AND (T1._Fld15335 = T22._Fld15349)) AND (T22._Fld15346RRef = @P41))) AND (T22._Fld847 = @P42)
LEFT OUTER JOIN dbo._Document457_VT15344 T23
ON ((((T1._Document457_IDRRef = T23._Document457_IDRRef) AND (T1._Fld15335 = T23._Fld15349)) AND (T23._Fld15346RRef = @P43))) AND (T23._Fld847 = @P44)
LEFT OUTER JOIN dbo._Document457_VT15344 T24
ON ((((T1._Document457_IDRRef = T24._Document457_IDRRef) AND (T1._Fld15335 = T24._Fld15349)) AND (T24._Fld15346RRef = @P45))) AND (T24._Fld847 = @P46)
WHERE ((T1._Fld847 = @P47)) AND ((T1._Document457_IDRRef = @P48))
GROUP BY T1._Document457_IDRRef,
T1._LineNo15322,
T1._Fld15335,
T1._Fld15323RRef,
T1._Fld15324,
T1._Fld15325_TYPE,
T1._Fld15325_RTRef,
T1._Fld15325_RRRef,
T1._Fld15326,
T1._Fld15327,
T1._Fld15330RRef,
T1._Fld15329,
T1._Fld15333RRef,
T1._Fld15332',N'@P1 varbinary(16),@P2 numeric(10),@P3 varbinary(16),@P4 numeric(10),@P5 varbinary(16),@P6 numeric(10),@P7 varbinary(16),@P8 numeric(10),@P9 varbinary(16),@P10 numeric(10),@P11 varbinary(16),@P12 numeric(10),@P13 varbinary(16),@P14 numeric(10),@P15 varbinary(16),@P16 numeric(10),@P17 varbinary(16),@P18 numeric(10),@P19 varbinary(16),@P20 numeric(10),@P21 varbinary(16),@P22 numeric(10),@P23 varbinary(16),@P24 numeric(10),@P25 varbinary(16),@P26 numeric(10),@P27 varbinary(16),@P28 numeric(10),@P29 varbinary(16),@P30 numeric(10),@P31 varbinary(16),@P32 numeric(10),@P33 varbinary(16),@P34 numeric(10),@P35 varbinary(16),@P36 numeric(10),@P37 varbinary(16),@P38 numeric(10),@P39 varbinary(16),@P40 numeric(10),@P41 varbinary(16),@P42 numeric(10),@P43 varbinary(16),@P44 numeric(10),@P45 varbinary(16),@P46 numeric(10),@P47 numeric(10),@P48 varbinary(16)',0x8314FCAA140E89E111E62D353C693969,0,0x8314FCAA140E89E111E62D353C69396A,0,0x8314FCAA140E89E111E62D353C69396B,0,0x8314FCAA140E89E111E62D353C693942,0,0x8314FCAA140E89E111E62D353C693947,0,0x8314FCAA140E89E111E62D353C69394C,0,0x8314FCAA140E89E111E62D353C693943,0,0x8314FCAA140E89E111E62D353C693948,0,0x8314FCAA140E89E111E62D353C69394D,0,0x8314FCAA140E89E111E62D353C693944,0,0x8314FCAA140E89E111E62D353C693949,0,0x8314FCAA140E89E111E62D353C69394E,0,0x8314FCAA140E89E111E62D353C693945,0,0x8314FCAA140E89E111E62D353C69394A,0,0x8314FCAA140E89E111E62D353C69394F,0,0x8314FCAA140E89E111E62D353C693946,0,0x8314FCAA140E89E111E62D353C69394B,0,0x8314FCAA140E89E111E62D353C693950,0,0x8314FCAA140E89E111E62D353C69396C,0,0x8314FCAA140E89E111E62D353C69396D,0,0x8314FCAA140E89E111E62D353C69396E,0,0x8314FCAA140E89E111E62D353C69396F,0,0x8314FCAA140E89E111E62D353C693970,0,0,0x941B9457A558CA4B11E6C7D91D72BA0B

Помогите написать запрос - Scheduler + блокировка на пересечение событий.

$
0
0
Добрый день.

В таблице Events, хранятся события, у которых есть начало [DateBegin] DATETIME и конец [DateEnd] DATETIME. Перед добавлением нового события в базу необходимо проверить, чтоб новое событие не пересекалось с имеющимся событиями. Как правильней всего написать такую проверку?

Очень буду благодарен за советы...

лог вызова и результатов скалярной функции

$
0
0
Есть несколько скалярных функций, лог вызова которых (список входящих переменных и результат) хотелось бы хранить неделю-две.
Вызовов будет не так много, так что неделю-две система стерпит.

Как это реализовать наиболее подходящими методами?

Как вывести данные по N любым строкам

$
0
0
Добрый день.

Помогите, пожалуйста, справиться с задачей:

Дана таблица со столбцами company и name
Нужно вывести name по 5 любым company.

Вопрос в том, как ограничить select выбором именно 5 любых значений company?

Условия в SQL запросе

$
0
0
Здравствуйте. Есть запрос:
SELECT us.Name, us.Platform, us.Language, le.Date, le.ValueIMP, le.ProductTypeName, si.Name AS ShopItem, pack.Name AS Package
FROM LogEntries le 
  LEFt JOIN Users us ON us.Id = le.UserId
  LEFt JOIN dbo.ShopItems si ON si.Id = le.ProductId
  LEFt JOIN dbo.Packages pack ON pack.Id = le.ProductId
WHERE (le.Type = 0 OR le.Type = 1 OR le.Type = 4 )


Результат:
Картинка с другого сайта.

Вопрос:
Как сделать так, что если ProductTypeName = ShopItem, то значение в столбце Package = Null?

Импорт dbf и экспорт dbf из Ms sql

$
0
0
Вообщем имеются dbf файла от fox pro базы.

Мне необходимо соеденять эти таблицы запросами , т е использовать join.
Ничего лучшего не придумав , я задумал все таблички нужные таблички поместить в ms sql и уже на его стороне выполнять запросы на соединение а затем выплевывать результитрующую dbf.

Запросы писать умею а вот с экспортом проблемы

Подключаюсь через мастер ИМПОРТа/экспорта
через драйвер .Net Framework Data Provider for ODBC

прописываю строку соединения Driver={Microsoft Visual FoxPro Driver};sourcetype=DBF;sourcedb=d:\Aramis\12

вижу эти таблички но когда нажимаю продолжить вываливается ошибка

Не удалось получить сведения о столбцах для исходных и целевых данных.


"kartkp" -> [dbo].[kartkp]:

- Невозможно найти столбец -1.
(Мастер импорта и экспорта SQL Server)

===================================

Невозможно найти столбец -1. (System.Data)

------------------------------
Расположение программы:

в System.Data.DataColumnCollection.get_Item(Int32 index)
в Microsoft.DataTransformationServices.Controls.ProviderInfos.MetadataLoader.LoadColumnsFromTable(IDbConnection myConnection, String[] strRestrictions)
в Microsoft.SqlServer.Dts.DtsWizard.OLEDBHelpers.LoadColumnsFromTable(MetadataLoader metadataLoader, IDbConnection myConnection, String[] strRestrictions, DataSourceInfo dsi)
в Microsoft.SqlServer.Dts.DtsWizard.TransformInfo.PopulateDbSourceColumnInfoFromDB(IDbConnection mySourceConnection)
в Microsoft.SqlServer.Dts.DtsWizard.TransformInfo.PopulateDbSourceColumnInfo(IDbConnection mySourceConnection, ColumnInfoCollection& sourceColInfos)

В чем проблема?

Копирование extended properties

$
0
0
Всем привет.
Подскажите каким способом лучше сделать.
Требуется копировать часть свойств из одной базы в другу.
Предполагаю что нужно задействовать linked server, sys.extended_properties и sp_addextendedproperty.
Если у кого есть готовый скрипт, прошу поделиться...
Интересует разворот строки из sys.extended_properties в уровни вложенности объектов (@level0,@level1,@level2) для sp_addextendedproperty.


Заранее спасибо.

Помощь с тригерами

$
0
0
Всем привет! Нужна помощь! Необходимо создать тригер который будет умножать количество дней из таблицы "Talon" от "Дата_начала" до "Дата_конца"(эти дни должны заносится в строку Срок в таблице) на цену из таблицы"Mesta", которая может зависит от "Код_вида_места"(кодов вида места 2)


Есть примерный код:
use stoyanka
create TRIGGER gfd ON Talon
AFTER INSERT, UPDATE
AS
BEGIN
 

UPDATE Mesta SET [цена] = Talon.срок *
           CASE
               WHEN inserted.Код_вида_места  '1'  THEN Цена * inserted.Срок
              WHEN inserted.Код_вида_места  '2'  THEN Цена * inserted.Срок
         
           END *

FROM
  inserted 
  JOIN  Mesta ON inserted.Код_вида_места = Mesta.Код_вида_места
  JOIN Talon ON Talon.Номер_места = inserted.Номер_места
 
 
END

Перенос строк в третью таблицу по не совпадению в двух других (структура одинаковая)

$
0
0
Каким образом можно осуществить перенос строк в третью таблицу по не совпадению в двух других (структура одинаковая) используя один запрос. Есть три таблицы с одинаковой структурой, только в 1 таблице не достает одного поля, необходимо сравнить имеющиеся записи из 1 таблицы и 2-ой, если в 2 таблице есть записи которых нет в 1-ой, то перенести эти записи в 3 таблицу.

HAProxy load balancing on MS SQL Report Service Scale out Deployment

$
0
0
Добрый день всем

Такая вот задача: нужно поставить линуксовский HAProxy load balancer на MS SQL Report Service Scale-out-Deployment.

MS NLB нам не подходит. Есть ли опыт такой конфигурации. Может кто поможет.

Спасибо

Помогите с запросом на выборку, пожалуйста

$
0
0
Текущая выборка данных приведена на изображении.
В ней сгруппированы свойства товара. Свойства зависят друг от друга.

Например:
Марка: Id = 10 "Toyota" - родительское
Год выпуска: Id = 155 "2006" - дочернее от Toyota
Модель: Id = 351 "Camry" - зависит от 2006 и от Toyota
Вид крепления: Id=698 "На гладкую крышу" - зависит от Camry, 2006 и Toyota

Мне из этих данных нужно получить следующую выборку:
ValueId | ParentValueId
155 | 10
351 | 155
351 | 10
698 | 351
698 | 155
698 | 10

Пожалуйста, помогите решить проблему.

Некорректное удаление данных

$
0
0
Здравствуйте. Есть триггер который удаляет запись и сохраняет ее в другую таблицу.(из таблицы билет в таблицу архив)
Но если зайти в другую таблицу(допустим сеанс) и удалить там запись,то она каким-то образом затронет таблицу билет(там есть строка код_сеанса) удалит там запись и тем самым запустит триггер и запись окажется в таблице архив. Надеюсь понятно объяснил. Как сделать,чтобы он удалял только из таблицы билет и не трогал другие таблицы??
Понимаю,что он затрагивает любую строку из прописанных ниже во всех таблицах,но нужно как-то ограничиться только билетом.

CREATE TRIGGER [Del]
    ON [dbo].[Билет]
    FOR DELETE
    AS
    BEGIN
DECLARE @a INT 
SET @a = (SELECT код_билета FROM deleted)
DECLARE @b INT
SET @b = (SELECT серия FROM deleted)
DECLARE @c INT
SET @c = (SELECT место FROM deleted)
DECLARE @d INT
SET @d = (SELECT цена FROM deleted)
DECLARE @e INT
SET @e = (SELECT ряд FROM deleted)
DECLARE @f DATE
SET @f = (SELECT дата_продажи FROM deleted)
DECLARE @g DATE
SET @g = (SELECT дата_возврата FROM deleted)
DECLARE @h DATE
SET @h = (SELECT дата_бронирования FROM deleted)
DECLARE @i INT
SET @i = (SELECT код_фильма FROM deleted)
DECLARE @j INT
SET @j = (SELECT код_сеанса FROM deleted)
DECLARE @k datetime
SET @k = (SELECT дата_просмотра FROM deleted)
DECLARE @l INT
SET @l = (SELECT код_продавца FROM deleted)
IF (SELECT COUNT(*) FROM deleted ) >0
BEGIN
INSERT INTO Архив (код_билета,серия,место,цена,ряд,дата_продажи,дата_возврата,дата_бронирования,код_фильма,код_сеанса,дата_просмотра,код_продавца)
VALUES (@a,@b,@c,@d,@e,@f,@g,@h,@i,@j,@k,@l)
END
ELSE 
BEGIN 
print ('Перенос в архив не заверщен')
   ROLLBACK TRANSACTION
 
END
END
GO

Проблема с подключение к службе SSAS

$
0
0
Уважаемые знатоки, прощу помощи.
Есть сервер с 2008 R2, на котором крутятся базы с данными и OLAP.
Клиенты не могут подключиться к службе SSAS. OleDB драйвер ругается "Could not connect to the redirector. Ensure that the SqlBrowser...".
SqlBrowser работает, SSAS висит на порту 2383, telnet`ом удаленно подрубается, с коннектом к Database Engine проблем нет.
Локально все работает.
Я в замешательстве. Куда копать?

bulk insert ругается(((

$
0
0
Доброго дня. Загружаю из csv файла в таблицу с типами данных (varchar,varchar,varchat,bit)
bulk insert table1
from 'D:\DB\table1.csv'
with
(fieldterminator=',',
rowterminator='\n'
)
Ошибка преобразования массовой загрузки данных (несоответствие типов или недопустимый символ для указанной кодовой страницы) в строке 2, столбце 6 (Logic).
Тип данных для Logic = bit
Не хочу чтобы он ругался. Помогите!

MS SQL Server как реализовать остаток на складе

$
0
0
Всем привет, мне для диплома нужно реализовать систему по учету запасами на складе, т.е. система должна проверять сколько товара в определенный промежуток времени находится на складе.
У меня есть таблицы:
Склад(код, номер склада, описание, ответственный)
Товар(код, артикул, наименование, описание, цена)
Сырье(код, артикул, наименование, описание, цена)

Вот мне нужно из сырья производить товар на предприятии, в 1c это реализуется может легче там регистры накопления и т.д.
Как сделать учет товара в SQL , мне вот нужно правильно спроектировать базу данных

1. Создать таблицу Движение товара(код, дата создания накладной, тип (приход, расход), отественный, количество)
2. Добавить к таблицам товар, сырье - поле количество и когда мы будем производить операцию приход/расход, будем менять данное значение
я себе так представил, как самый легкий вариант, но на деле это не правильно я думаю
Например, мы произвели 1000 плиток, продали из них 500, осталось плиток 500,
произвели еще 300 отправили на склад, теперь там у нас 800, но как знать какие были до этого созданы а которые пришли недавно,
а если у них цены разные
Помогите пожалуйста кто сталкивался с подобным проектированием бд!!!

Ошибка после присоединения базы

$
0
0
На днях слетела винда на которой стаял SQL server, файлы базы я вытащил и переустановил винду, и когда я начал присоединять одну из баз мне выдает ошибку, с которой никак не могу справиться.
Запускал чек, результат ниже
+

Сообщение 7985, уровень 16, состояние 2, строка 1
Предварительная проверка системных таблиц: объект с идентификатором 5. Не удалось прочитать страницу (1:6590) и заблокировать ее кратковременной блокировкой типа SH. Инструкция проверки прервана из-за неустранимой ошибки.
Результаты DBCC для "Chusovoy2015(Titul-127)".
Сообщение 5256, уровень 16, состояние 1, строка 1
Ошибка в таблице. Единица распределения с идентификатором 71793764236918784, страница (1:6590), содержит в заголовке страницы неверный идентификатор страницы. PageId в заголовке страницы = (1:6462).
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в базе данных "Chusovoy2015(Titul-127)".

Другие базы нормально присоединились.
Прошу помощи в решении данной проблемы, я уже не надеюсь на полное восстановление базы, хотелось бы хоть часть таблиц выдернуть.
Бейкап сделан за день до этого, но за этот день, было очень много проделано.

Сложный запрос (может и простой, но я устал, окончен бой)

$
0
0
Не могу сообразить, голова кругом идем. Спать клонит, а сделать надо!

table1 (id1,param); table2(id2,id1); table3(id2,id4); table4(id4,atrrib) по связям думаю ясно(Схема на прикрепленной картинке)

Нужно вывести данные из table1 для которых в table4 значение atrrib = 2.

sql съедает 26 гигов оперативы.

$
0
0
Приветствую после того как перезапускаешь службу sql, начинается отчет оперативы от 13 гигов. Итого в течении суток или двое оно достигает максимальной отметки в 26 гигов. Что может быть где посмотреть? На sql вертится 1с Рарус ТКПТ. Это центральная база. На дочерней тоже sql и там все норм максимум что позволяет себе там sql это 1 гиг оперативы.

На центральной стоит 2008 сервер стандарт а на дочерней 2012 стандарт.

Скорость выполнения запроса

$
0
0
Дано 2 таблицы:
TIT type
T_TIME float
VALUES_ID int
V_VALUE float
CLIENTS_ID int
VALID smallint
Time_Offset float

tValues type
VALUESID int

В таблицу TIT постоянно пишутся данные из другой программы(через oledb provider).
В tValues указаны все VALUES_ID которые необходимо выбрать из таблицы TIT (их сейчас не много, - 12 шт.).
Необходимо выбрать последние данные из таблицы TIT(по времени имеется ввиду).

Записей в таблице TIT около 2-3 млн. (накапливается до недели и раз в сутки job удаляет все данные больше недели).
Запрос выполняется 7 сек.

Вопрос: можно ли как-то увеличить скорость выборки?

Спасибо.

Ошибка при выполнении JOB

$
0
0
Всем привет!
Есть задание. Запустил его на выполнениее руками (Start Job at Stap...), с 11 шага.
В какой-то момент окно с информацией о ходе выполнения, показало ошибку.
Viewing all 7251 articles
Browse latest View live