powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5.4 - процедурный план
4 сообщений из 4, страница 1 из 1
ASE 12.5.4 - процедурный план
    #36248895
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При передаче параметров процедуре извне, план содержит сканирование индекса, т.е. игнорируется значение параметра передаваемого в процедуру.
Можно ли как-нибудь заставить оптимизатор искать по ключу, ведь во время исполнения процедуры значения параметров известны?


Постараюсь пояснить.

Если рассмотреть 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?

Заранее большое спасибо.
...
Рейтинг: 0 / 0
ASE 12.5.4 - процедурный план
    #36248924
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа,
удалось разобраться. В реальном примере я использовал разные типы данных и это приводило к скану. Как только я сделал тип параметра одинаковым с типом поля планы обеих процедур стали одинаковыми.

Извиняюсь за беспокойство.
...
Рейтинг: 0 / 0
ASE 12.5.4 - процедурный план
    #36249097
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kru wrote:
> удалось разобраться. В реальном примере я использовал разные типы данных
> и это приводило к скану. Как только я сделал тип параметра одинаковым с
> типом поля планы обеих процедур стали одинаковыми.

Вообще разница в типах данных параметра, переменной и поля таблицы
в WHERE или двух полей двух таблиц в JOIN -- это первое, что нужно
проверить, если индек не выбирается.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5.4 - процедурный план
    #36251853
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Kru wrote:
> удалось разобраться. В реальном примере я использовал разные типы данных
> и это приводило к скану. Как только я сделал тип параметра одинаковым с
> типом поля планы обеих процедур стали одинаковыми.

Вообще разница в типах данных параметра, переменной и поля таблицы
в WHERE или двух полей двух таблиц в JOIN -- это первое, что нужно
проверить, если индек не выбирается.

Согласен! Спасибо
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5.4 - процедурный план
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]