Подсчитать хранимые процедуры в базе данных? - PullRequest
5 голосов
/ 14 января 2009

Как я могу подсчитать количество хранимых процедур в моей базе данных и является ли плохой практикой иметь слишком много хранимых процедур?

Ответы [ 8 ]

12 голосов
/ 14 января 2009
Select count(*) from sysobjects where xtype = 'P'
6 голосов
/ 14 января 2009
Select count(1) from information_schema.routines
where routine_type = 'PROCEDURE'
2 голосов
/ 14 января 2009

вы можете исключить системные хранимые процедуры из вашего счета

В одну сторону можно позвонить:

select count(*) from sysobjects 
    where xtype = 'P'
    and category = 0
    and left(name,2) <> 'sp'

Это предполагает, что вы не используете префиксы для процедур с sp

1 голос
/ 14 января 2009

Это исключит те, которые иногда создаются при использовании инструмента построения диаграмм (они начинаются с dt _)

SELECT * FROM information_schema.routines
WHERE OBJECTPROPERTY(OBJECT_ID(SPECIFIC_NAME),'IsMSShipped') =1
AND  routine_type = 'PROCEDURE'
1 голос
/ 14 января 2009

Ниже приведен запрос, который вы можете использовать:

 select count(*) from sysobjects where xtype='P'

Если весь ваш доступ к БД разрешен через SP, то пределом является небо.

1 голос
/ 14 января 2009

Вам нужно столько, сколько требует ваше приложение. Сохранять процедуры маленькими и простыми - это хорошо.

Если вы используете sql 2005, визуальный способ увидеть количество ваших процессов - это перейти в SSMS к узлу вашей хранимой процедуры в режиме программирования. Нажмите View-Object Explorer Details, и справа отобразится количество объектов.

0 голосов
/ 05 марта 2013

Вот простой запрос, который вы можете использовать:

SELECT COUNT(object_id) FROM sys.procedures
0 голосов
/ 14 января 2009

Если вы используете их, то на самом деле не существует такой вещи, как «слишком много».

У меня был разработчик, который беспокоился о том, что его хранимые процессы используют слишком много места в базе данных, поэтому мне пришлось рассчитать общий размер всех хранимых процедур. Хороший ответ для этого здесь. В результате размер хранимых процедур вместе составлял, возможно, 0,001% от общего размера базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...