|
|
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
Есть табличка с полем IDWord Надо отфильтровать записи, используя в качестве фильтра массив IDWord'ов. Массив может быть до 100 000 элементов, т.е. WHERE IDWord = 1 OR IDWord = 2 ... не пойдет. Или подскажите, как бысро вставить эти IDWord во временную табличку. Простой INSERT каждой записи отрабатывает за 10 минут - не катит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 14:58:35 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
select idWord into #temptable from WordTable where IDWord in (массив твоих idword или select из другой таблицы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 15:22:34 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
Во, насчет "массив твоих idword" поподробнее пожалуйста :)) У меня это пока массив в сишнике long IDWord[100000]; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 15:27:11 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
Делай через так: insert into #tmp select 1 union select 2 ... union select N1 insert into #tmp select N1+1 union select N1+2 ... union select N2 .... Так в разы можно ускорить. Можно массив в файл слить и потом BCP или DTS на него натравить. Так еще быстрее будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 15:32:05 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
Сорри, я не до конца понял задачу. Во-первых, мой запрос выглядеть должен по-другому: select * into #temptable from WordTable where IDWord in (массив) Как ты этот массив передаешь в запрос? Формируешь сначала текст, потом запихиваешь в SQL запрос, и потом скопом выполняешь? Если так, то ты при формировании текста запроса напиши цикл, который будет формировать строку из твоего массива (через запятую) и потом эту текстовую строку добавь на место массива в запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 15:39:55 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
>Как ты этот массив передаешь в запрос? Так это я, собственно, и хочу выянить - как передать массив в запрос :) Но идею ты мне дал - попробую сформировать строчку. Интересно только, какой максимальной длинны может быть запрос, поскольку при внесении 100 000 записей длина запроса будет в районе полутонны. Выдержит ли SQL-автомат :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 15:48:43 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
Попробуй... Я применял подобный механизм, когда условие Where в запросе зависит от каких-то дополнительных навороченных условий (case, как правило, в этих случаях не выручает). Длина запроса - не знаю, но должен выдержать... Разве что компонента c++ может не принять... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 16:26:12 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
Проверил на 5 тысячах. Отработало за несколько секунд. Пойдет, сенькс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 16:45:32 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
На здоровье... Был рад помочь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 16:46:50 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
лови Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 18:52:27 |
|
||
|
Подайте идейку по фильтрации
|
|||
|---|---|---|---|
|
#18+
>Как ты этот массив передаешь в запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 00:47:50 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32049735&tid=1820412]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 300ms |

| 0 / 0 |
