|
|
|
Как оптимальнее запрос при больших таблицах?
|
|||
|---|---|---|---|
|
#18+
Как оптимальнее построить запрос при больших таблицах tbl1, tbl2, т.е. без использования IN ? SELECT a.* FROM tbl1 a WHERE NOT a.cd IN (SELECT cd FROM tbl2) ORDER BY a.fld1, a.fld2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2002, 16:25:58 |
|
||
|
Как оптимальнее запрос при больших таблицах?
|
|||
|---|---|---|---|
|
#18+
Что-то типа SELECT a.* FROM tbl1 a left join tbl2 on a.cd = tbl2.cd WHERE tbl2.cd is null ORDER BY a.fld1, a.fld2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2002, 16:35:57 |
|
||
|
Как оптимальнее запрос при больших таблицах?
|
|||
|---|---|---|---|
|
#18+
а так.... Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2002, 16:46:42 |
|
||
|
Как оптимальнее запрос при больших таблицах?
|
|||
|---|---|---|---|
|
#18+
"When you have a choice of using the IN or the EXISTS clause in your Transact-SQL, you will generally want to use the EXISTS clause, as it is more efficient and performs faster." то есть замени in на Exists при объединении таблиц через join возможно увеличение количеств операций...так как образуется цикл, т.е. лучше сделать твой вариант, когда один запрос использует выборку другого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2002, 16:53:12 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1820008]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
112ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 407ms |

| 0 / 0 |
