вот еще наблюдение
4 селекта:
поиск в короткой строке в родном collation - длительность 630мс
Цитата:
select *
from SalesPickingListJournalLine isum (nolock)
where charindex ( ltrim ( rtrim ( isum.PickingListId ) ) , ',01Н0002320') > 0
поиск в короткой строке в чужем collation - 260мс
Цитата:
select *
from SalesPickingListJournalLine isum (nolock)
where charindex ( ltrim ( rtrim ( isum.PickingListId collate SQL_Latin1_General_CP1251_CI_AS) ) , ',01Н0002320') > 0
поиск в длинной (в 10 раз длиннее) строке в родном collation - 2840мс (рост длительности в 4.5 раза)
Цитата:
select *
from SalesPickingListJournalLine isum (nolock)
where charindex ( ltrim ( rtrim ( isum.PickingListId ) ) , ',01Н0002320,01Н0002321,01Н0002322,01Н0002323,01Н0002324,01Н0002325,01Н0002326,01Н0002327,01Н0002328,01Н0002329') > 0
поиск в длинной (в 10 раз длиннее) строке в чужем collation - 430мс (рост длительности - в 1.5 раза)
Цитата:
select *
from SalesPickingListJournalLine isum (nolock)
where charindex ( ltrim ( rtrim ( isum.PickingListId collate SQL_Latin1_General_CP1251_CI_AS) ) , ',01Н0002320,01Н0002321,01Н0002322,01Н0002323,01Н0002324,01Н0002325,01Н0002326,01Н0002327,01Н0002328,01Н0002329') > 0
--collation сервера, базы и поля таблицы PickingListId - Cyrillic_General_CI_AS
т.е. чем сложнее вычисления в Cyrillic_General_CI_AS тем хуже он в моих экспериментах по сравнению с SQL_Latin1_General_CP1251_CI_AS