Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога

Хранимые процедуры с префиксом sp_ и производительность

Mike Chaliy поднял интересную тему относительно именования объектов базы данных. В ней несколько раз прозвучали различные мнения относительно использования/не использования префикса sp_ для хранимых процедур. В пользу не использования обычно приводят аргумент, что sp_ это префикс для системных хранимых процедур и может возникнуть путаница. А в пользу использования, что путаница не возникнет, т.к. какие могут быть системные хранимые процедуры в пользовательской базе данных. Заблуждение и первых, и вторых в том, что использование/не использование sp_, это не вопрос стиля именования. Это вопрос производительности.

Главная проблема в том, что использование префикса sp_ в базах отличных от master приводит к следующей проблеме. Если оптимизатор встречает хранимую процедуру с префиксом sp_ от сначала проверяет, а нет ли такой системной, и если ее находит, то игнорирует вашу, а берет системную. Это приводит к двум проблемам:

  • Лишняя проверка требует дополнительных затрат
  • Существует довольно большая вероятность, что ваша план для такой хранимой процедуры не будет кэшироваться.

Несколько ссылок по теме:

Should I Use the sp_ Prefix for Procedure Names?

Stored Procedures Optimization Tips

Prefixing Stored Procedure Names with "sp_"

Опубліковані Tuesday, December 26, 2006 11:42 AM від kosinsky
Помічено як: ,

Коментарі

# re: Хранимые процедуры с префиксом sp_ и производительность

Вэк жывы - вэк учысь.

Tuesday, December 26, 2006 8:44 AM by Віктор Шатохін

# re: Хранимые процедуры с префиксом sp_ и производительность

Вау, действительно удивительно!

Wednesday, January 03, 2007 6:45 AM by slash
Анонімні коментарі деактивовані. Увійдіть або Зареєструйтесь щоб мати доступ до ресурсів Спільноти.