如何计算SQL Server 2005中存储过程的SIZE?

Bra*_*adC 6 t-sql stored-procedures sql-server-2005

我被要求对特定数据库中使用的空间进行全面细分.我知道我可以在SQL Server 2005中使用sys.dm_db_partition_stats来计算数据库中每个使用的空间大小,但有没有办法确定数据库中存储过程的个别和总大小?(当然,没有打开每一个并计算字符数.)

存储过程使用的总空间不太可能很大(与实际数据相比),但有数百个,它可能会相加.

Cad*_*oux 13

;WITH ROUTINES AS (
    -- CANNOT use INFORMATION_SCHEMA.ROUTINES because of 4000 character limit
    SELECT o.type_desc AS ROUTINE_TYPE
            ,o.[name] AS ROUTINE_NAME
            ,m.definition AS ROUTINE_DEFINITION
    FROM sys.sql_modules AS m
    INNER JOIN sys.objects AS o
        ON m.object_id = o.object_id
)
SELECT SUM(LEN(ROUTINE_DEFINITION))
FROM ROUTINES
Run Code Online (Sandbox Code Playgroud)