|
|
|
ASE 12.5.4 - процедурный план
|
|||
|---|---|---|---|
|
#18+
При передаче параметров процедуре извне, план содержит сканирование индекса, т.е. игнорируется значение параметра передаваемого в процедуру. Можно ли как-нибудь заставить оптимизатор искать по ключу, ведь во время исполнения процедуры значения параметров известны? Постараюсь пояснить. Если рассмотреть 2 процедуры: create procedure proc1 @a int as select * from table where a = @a create procedure proc2 as decalre @a int select @a = 1 select * from table where a = @a Процедура 2 ищет по ключу, в то время как процедура 1 сканирует индекс. НО! Ведь, в конце концов, обе процедуры создают один и тот же запрос и планы должны быть тождественны. Почему этого не происходит? Можно ли как-то добиться более оптимального плана для процедуры 1? Заранее большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 19:26 |
|
||
|
ASE 12.5.4 - процедурный план
|
|||
|---|---|---|---|
|
#18+
Господа, удалось разобраться. В реальном примере я использовал разные типы данных и это приводило к скану. Как только я сделал тип параметра одинаковым с типом поля планы обеих процедур стали одинаковыми. Извиняюсь за беспокойство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 19:46 |
|
||
|
ASE 12.5.4 - процедурный план
|
|||
|---|---|---|---|
|
#18+
Kru wrote: > удалось разобраться. В реальном примере я использовал разные типы данных > и это приводило к скану. Как только я сделал тип параметра одинаковым с > типом поля планы обеих процедур стали одинаковыми. Вообще разница в типах данных параметра, переменной и поля таблицы в WHERE или двух полей двух таблиц в JOIN -- это первое, что нужно проверить, если индек не выбирается. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 22:37 |
|
||
|
ASE 12.5.4 - процедурный план
|
|||
|---|---|---|---|
|
#18+
MasterZiv Kru wrote: > удалось разобраться. В реальном примере я использовал разные типы данных > и это приводило к скану. Как только я сделал тип параметра одинаковым с > типом поля планы обеих процедур стали одинаковыми. Вообще разница в типах данных параметра, переменной и поля таблицы в WHERE или двух полей двух таблиц в JOIN -- это первое, что нужно проверить, если индек не выбирается. Согласен! Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 00:19 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=36249097&tid=2010868]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
151ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 481ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...