|
|
|
Where IN (1,2, .. n) vs. Temporary table ?
|
|||
|---|---|---|---|
|
#18+
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. Kak vidno, eta chast' - Код: plaintext 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 11:55:44 |
|
||
|
Where IN (1,2, .. n) vs. Temporary table ?
|
|||
|---|---|---|---|
|
#18+
1.По разному может получится в зависимости от количества элементов в IN, их конкретных значений, наличия индекса(ов). Думаю при возрастании числа значений в передаваемой строке вариант с временной таблицей все больше будет выигрышным.\r \r \r 2. Разбор строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2002, 21:42:44 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3382&tid=1819009]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 310ms |

| 0 / 0 |
