|
|
|
WHERE (@ID=0 OR ID=@ID) не используется индекс по ID
|
|||
|---|---|---|---|
|
#18+
Мне в SP нужно вернуть либо все записи из AgentRep либо только записи с определенным AgentCompanyID в зависимости от @AgentCompanyID: (примерно так) Код: plaintext 1. 2. 3. 4. 5. А если сравнить с таким запросом: Код: plaintext 1. то наблюдается неприятная картина: cost первого и второго запроса соотв. 76% и 24% Первый запрос выполняется с Clustered Index Scan по AgentRep, второй использует существующий индекс по AgentCompanyID для таблицы AgentRep - что естественно гораздо быстрее. Вопрос, а почему ? И как этого избежать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2002, 00:56:41 |
|
||
|
WHERE (@ID=0 OR ID=@ID) не используется индекс по ID
|
|||
|---|---|---|---|
|
#18+
Почему бы не использовать такой код? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2002, 02:08:00 |
|
||
|
WHERE (@ID=0 OR ID=@ID) не используется индекс по ID
|
|||
|---|---|---|---|
|
#18+
В простейшем случае - Да. А как быть если таких параметров несколько? Скажем 3 или больше ? Все комбинации не пропишешь, однако. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2002, 02:40:44 |
|
||
|
WHERE (@ID=0 OR ID=@ID) не используется индекс по ID
|
|||
|---|---|---|---|
|
#18+
Для явного указания на использование индекса можно использовать with (index(index_name)) в select . Правда, таким способом нельзя выбирать нужный индекс в зависимости от значения переменных. Но скорее всего это невозможно, так как план выполнения запроса строится при отсутствии информации о значении переменных. Можно строить текст запроса динамически, но этот способ имеет свои недостатки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2002, 15:08:50 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=46&tid=1822225]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
229ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 521ms |

| 0 / 0 |
