powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Where IN (1,2, .. n) vs. Temporary table ?
3 сообщений из 3, страница 1 из 1
Where IN (1,2, .. n) vs. Temporary table ?
    #32065295
Snark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S klienta prihodit peremennyj nabor IDs - naprimer 1,3,5 - takoj nabor mozhet byt' ochen' dlinnym i takih naborov
prihodit neskol'ko. Na osnove etih kriteriev vyborki sozdeatesja neskol'ko dynamic SQL queries= naprimer
Код: plaintext
1.
2.
EXEC('SELECT * Distinct A FROM Test  WHERE ID1 IN (' + @ID1 + ') AND ID2 IN ('....') AND' ... etc.)
EXEC('SELECT * Distinct B FROM Test  WHERE ID1 IN (' + @ID1 + ') AND ID2 IN ('....') AND' ... etc.)

Kak vidno, eta chast' -
Код: plaintext
'FROM Test WHERE ID1 IN (' + @ID1 + ') AND ID2 IN ('....') AND '... etc.

postojanna i ispol'zuetsja v query neskol'ko raz

Nedostatki - ochevydny: dynamicheskie zaprosy kompilirujutsja kazhdyj raz pri zapuske, v zaprosah est' konstantnaj chast' kotoruju by ne hotelos' povtorjat' po tem zhe soobrazhenijam effektivnosti

Al'ternativa takomu podhodu - sozdanie vremennyh tablic - naprimer #ID1, #ID2 , etc,
kotorye soderzhat sootvetstvujushie ID's prishedshie s klienta i svjaz' etih tablic s tablicej Test s pomosh'ju INNER JOIN

Vopros 1 : naskol'ko ispol'zovanie vremennyh tablic opravdano v dannoj situacii s tochki zrenija effektivnosti, proizvoditel'nosti i resursoemkosti ?

Vopros 2 : sushestvuet li effektivnyj mehanizm dlja peredachi peremennogo nabora IDs kak parametra dlja sp
krome obsuzhdennogo vyshe dynamicheskogo (i neffektivnogo) sposoba sozdanija SQL query ?

Regards, Snark
...
Рейтинг: 0 / 0
Where IN (1,2, .. n) vs. Temporary table ?
    #32065615
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.По разному может получится в зависимости от количества элементов в IN, их конкретных значений, наличия индекса(ов). Думаю при возрастании числа значений в передаваемой строке вариант с временной таблицей все больше будет выигрышным.\r
\r
\r
2. Разбор строки
...
Рейтинг: 0 / 0
Where IN (1,2, .. n) vs. Temporary table ?
    #32065619
Фотография Gobzo Kobler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Советую почитать MSDN на предмет IN с большим количеством перебираемых значений. Быстро отпадет желание его использовать вообще. Советую джойнить со временной таблицей всегда.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Where IN (1,2, .. n) vs. Temporary table ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]