SQL Server性能常用语句

  1. 查看各表的数据行数
    SELECT
    o.name, i. ROWS
    FROM sysobjects o, sysindexes i
    WHERE o.id = i.id  AND o.Xtype = U AND i.indid < 2
    ORDER BY o.name;
  2. 计算数据库中各个表每行记录所占用空间
    --SELECT * FROM Employees AS e;
    
    CREATE TABLE #tablespaceinfo
        (
          nameinfo VARCHAR(50) ,
          rowsinfo BIGINT ,
          reserved VARCHAR(20) ,
          datainfo VARCHAR(20) ,
          index_size VARCHAR(20) ,
          unused VARCHAR(20)
        )  
     
    DECLARE @tablename VARCHAR(255);  
     
    DECLARE Info_cursor CURSOR
    FOR
        SELECT  [ + [name] + ]
        FROM    sys.tables
        WHERE   type = U;  
     
    OPEN Info_cursor  
    FETCH NEXT FROM Info_cursor INTO @tablename  
     
    WHILE @@FETCH_STATUS = 0
        BEGIN 
            INSERT  INTO #tablespaceinfo
                    EXEC sp_spaceused @tablename  
            FETCH NEXT FROM Info_cursor  
        INTO @tablename  
        END 
     
    CLOSE Info_cursor  
    DEALLOCATE Info_cursor  
     
    --创建临时表
    CREATE TABLE [#tmptb]
        (
          TableName VARCHAR(50) ,
          DataInfo BIGINT ,
          RowsInfo BIGINT ,
          Spaceperrow  AS ( CASE RowsInfo
                             WHEN 0 THEN 0
                             ELSE CAST(DataInfo AS decimal(18,2))/CAST(RowsInfo AS decimal(18,2))
                           END ) PERSISTED
        )
    
    --插入数据到临时表
    INSERT  INTO [#tmptb]
            ( [TableName] ,
              [DataInfo] ,
              [RowsInfo]
            )
            SELECT  [nameinfo] ,
                    CAST(REPLACE([datainfo], KB, ‘‘) AS BIGINT) AS datainfo ,
                    [rowsinfo]
            FROM    #tablespaceinfo
            ORDER BY CAST(REPLACE(reserved, KB, ‘‘) AS INT) DESC  
    
    
    --汇总记录
    SELECT  [tbspinfo].* ,
            [tmptb].[Spaceperrow] AS 每行记录大概占用空间(KB)
    FROM    [#tablespaceinfo] AS tbspinfo ,
            [#tmptb] AS tmptb
    WHERE   [tbspinfo].[nameinfo] = [tmptb].[TableName]
    ORDER BY CAST(REPLACE([tbspinfo].[reserved], KB, ‘‘) AS INT) DESC  
    
    DROP TABLE [#tablespaceinfo]
    DROP TABLE [#tmptb]

     

SQL Server性能常用语句,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。