Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 after sp4 need help with sql  [new]
Parkhomets Andrey
Member

Откуда: Киев
Сообщений: 282
Есть такой вот запрос :
select aa.sk_lotID,
aa.lot_date,
aa.sk_Good,
aa.gid,
aa.ss
from( select dlg.sk_lotID,
lt.lot_date,
dlg.sk_Good,
dlg.lot_gid,
(select top 1 wh.g_id
FROM dbo.TBL_GA_WAREHOUSES wh
where wh.LOT_ID=dlg.LOT_ID) gid,
2 ss
from DW_DATA_NT.DBO.TBL_DIM_LOTS dlg join
TBL_GA_LOTS lt on dlg.LOT_ID=lt.LOT_ID
where lot_System=2
) aa
where lot_gid <> aa.gid после наката sp4 ,стал безумно долго выполнятся. Может кто подскажет как его заоптимизирывать ?
Вот план: http://wheel.kiev.ua/~klf/plan.html

Пожалуйста !!!
5 янв 06, 19:57    [2231324]     Ответить | Цитировать Сообщить модератору
 Re: after sp4 need help with sql  [new]
Crimean
Member

Откуда:
Сообщений: 13148
сп4 ужесточил требования к типам данных
приводите типы данных в where и в join в соответствие
и все пройдет
6 янв 06, 11:26    [2232068]     Ответить | Цитировать Сообщить модератору
 Re: after sp4 need help with sql  [new]
Parkhomets Andrey
Member

Откуда: Киев
Сообщений: 282
Parkhomets Andrey
Есть такой вот запрос :
select aa.sk_lotID,
aa.lot_date,
aa.sk_Good,
aa.gid,
aa.ss
from( select dlg.sk_lotID,
lt.lot_date,
dlg.sk_Good,
dlg.lot_gid,
(select top 1 wh.g_id
FROM dbo.TBL_GA_WAREHOUSES wh
where wh.LOT_ID=dlg.LOT_ID) gid,
2 ss
from DW_DATA_NT.DBO.TBL_DIM_LOTS dlg join
TBL_GA_LOTS lt on dlg.LOT_ID=lt.LOT_ID
where lot_System=2
) aa
where lot_gid <> aa.gid после наката sp4 ,стал безумно долго выполнятся. Может кто подскажет как его заоптимизирывать ?
Вот план: http://wheel.kiev.ua/~klf/plan.html

Пожалуйста !!!


Определил, что багофича по причине типов данных :
wh.LOT_ID=dlg.LOT_ID -- decimal(8,0) = int
dlg.LOT_ID=lt.LOT_ID -- decimal(8,0) = int
таблетка :
select distinct
aa.sk_lotID,
aa.lot_date,
aa.sk_Good,
aa.gid,
aa.ss
from( select dlg.sk_lotID,
lt.lot_date,
dlg.sk_Good,
dlg.lot_gid,
( select top 1 wh.g_id
FROM dbo.TBL_GA_WAREHOUSES wh
where cast(wh.LOT_ID as int ) = dlg.LOT_ID --decimal(8,0) = int
)
gid,
2 ss
from DW_DATA_NT.DBO.TBL_DIM_LOTS dlg
join TBL_GA_LOTS lt on cast(dlg.LOT_ID as int) = lt.LOT_ID -- decimal(8,0) = int
where lot_System=2
) aa
where lot_gid <> aa.gid
6 янв 06, 11:27    [2232071]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить