|
|
|
Paradox Как работает: id IN (select id from..... - почему так долго
|
|||
|---|---|---|---|
|
#18+
Возникла проблема в Paradox (работаю через BDE в TQuery Delphi5) : - конструкция select * from table1 where id IN (select id from table2 where x = 1) очень долго (несколько минут) выполняется, причем вот такая конструкция: select * from table1 where id IN (1,2,3,4,5,6,...) работает очень быстро В table1 - 3000 записей в table2 - 5000 записей Подозреваю что BDE каждый раз перевыполняет (select id from table2 where x = 1) PS если вместо IN поставить "=" выполняется очень быстро Может запрос (select id from table2 where x = 1) возвращаеть 0 записей но работает вся конструкция очень долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 15:49 |
|
||
|
Paradox Как работает: id IN (select id from..... - почему так долго
|
|||
|---|---|---|---|
|
#18+
Попробуй Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 05:33 |
|
||
|
Paradox Как работает: id IN (select id from..... - почему так долго
|
|||
|---|---|---|---|
|
#18+
mixb - мой аккаунт 2golsa - да такой вариант конечно же возможен, но вопрос был в другом - почему IN работает так долго. На самом деле мне надо DELETE from table1 where id IN (select id from table2 where x = 1). Но это опять таки выполняется долго очень. Остается вариант выборки id из table2 ручками а затем подстановка в IN (id1,id2,...idn) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 07:41 |
|
||
|
Paradox Как работает: id IN (select id from..... - почему так долго
|
|||
|---|---|---|---|
|
#18+
Проверь есть ли индекс по ID в table2 - может поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 09:59 |
|
||
|
Paradox Как работает: id IN (select id from..... - почему так долго
|
|||
|---|---|---|---|
|
#18+
2golsa - индексы все есть (в первую очередь проверил). Ладно раз никто помочь не может будем ручками делать: в string загонять id из запроса select id from table2 where x=1 и уже затем вставлять в первый запрос в секции ...IN ('+строка id через запятую +')' У меня подозрения есть что в Paradox запрос который после IN выполняется для каждой записи.... Может это от настроек зависит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=56&gotonew=1&tid=2016425]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 431ms |

| 0 / 0 |
