Показать сообщение отдельно
Старый 20.09.2007, 12:16   #4  
VitaliyK is offline
VitaliyK
Участник
 
8 / 11 (1) +
Регистрация: 14.09.2007
Адрес: СПб
Цитата:
Сообщение от mazzy Посмотреть сообщение
Почему же не повторил?
Многие на это натыкались и обсуждений было несколько.

Эффект от перехода на Cyrilic_General_CI_AS на SQL2005 ошеломительный.
Те формы, которые открывались несколько минут - открываются мгновенно.

Вы посмотрите на план запроса при выполнении запроса с сортировкой/группировкой при General_Latin1_1251_CI_AS.
Создайте хотя бы пару миллионов записей и сравните время выполнения, а также как задействуется tempdb.

В общем, пилите дальше.
Понятно.
У нас тоже есть пара форм, которые ошеломилельно быстрее открываются.
Но все остальные, где лишнего table scan не было - медленнее...

Пойду пилу точить, а то зубья под 0 уже...


PS: все же не 2 млн. строк, но более 1 млн
Цитата:
select
top 10
*
from LedgerTrans (nolock)
where AccountNum like '%01%'
order by AccountNum
в General_Latin1_1251_CI_AS на 30% быстрее, чем Cyrilic_General_CI_AS
(тут законный Table scan - в обоих вариантах)

а тут в обоих вариантах нет table scan
Цитата:
SELECT A.ITEMID
FROM INVENTTABLE A WITH( NOLOCK),INVENTSUM B WITH( NOLOCK),INVENTDIM C WITH( NOLOCK)
WHERE ((A.DATAAREAID='DAT') AND (A.A_LINECODE ='CIS'))
AND ((B.DATAAREAID='DAT') AND (((B.CLOSED=0) AND (B.CLOSEDQTY=0)) AND (A.ITEMID =B.ITEMID )))
AND ((C.DATAAREAID='DAT') AND ((C.INVENTPROJECTID ='ОЧЕРЕДЬ') AND (B.INVENTDIMID=C.INVENTDIMID)))
GROUP BY A.ITEMID
ORDER BY A.ITEMID
OPTION(FAST 3)
и разница еще больше.

tempdb могла бы повлиять, но имхо, это бы проявилось при серверном collation отличающимся от Cyrilic_General_CI_AS, но на тестовом сервере специально был выставлен Cyrilic_General_CI_AS и на сервере и на БД - и все то же самое...