SQL server system query (data dictionary generation, database table quantity query, data table relationship)

Table of contents

1. The data dictionary method of generating the web version of the SQL data table

2. SQL cache cleanup

3. Query the existence of data tables and data volume in the database

4. Database memory settings

5. Database table relationship query


1. The data dictionary method of generating the web version of the SQL data table

Execute the following SQl, output the data result in text format, copy it to Txt, remove the dotted line, and modify the suffix name to Html

​
SET  NOCOUNT ON
DECLARE @TableName   NVARCHAR (500)

DECLARE
   Tbls CURSOR FOR
      SELECT DISTINCT tb.name
        FROM sys.tables as tb
      ORDER BY tb.name

OPEN Tbls
PRINT '<!DOCTYPE html>'
PRINT '<html>'
PRINT '<head>'
PRINT N'<title>数据库字典</title>'
PRINT '<style type="text/css">'
PRINT 'body{margin:0; font:11pt "arial", "微软雅黑"; cursor:default;}'
PRINT '.tableBox{margin:10px auto; padding:0px; width:1200px; height:auto; background:#FBF5E3; border:1px solid #45360A}'
PRINT '.tableBox h3 {font-size:12pt; height:auto; line-height:30px; background:#45360A; padding:0px 0px 0px 15px; color:#FFF; margin:0px; text-align:left }'
PRINT '.tableBox caption {font-size:12pt; height:auto; line-height:30px; background:#45360A; color: #FFF; text-align: center; font-weight: bold; }'
PRINT '.tableBox table {width:1200px; padding:0px;border-spacing: 0; border-collapse: collapse;}'
PRINT '.tableBox th {height:25px; border-top:1px solid #FFF; border-left:1px solid #FFF; background:#F7EBC8; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT '.tableBox td {height:25px; padding-left:10px; border-top:1px solid #FFF; border-left:1px solid #FFF; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT '</style>'
PRINT '</head>'
PRINT '<body>'
FETCH NEXT FROM Tbls   INTO @TableName

WHILE @@FETCH_STATUS = 0
BEGIN
   PRINT '<div class="tableBox">'
   PRINT '<table>'
   PRINT N'<caption>表 ' + @TableName + '</caption>';
   PRINT '<tr>'
   PRINT N'<th>字段名称</th>'
   PRINT N'<th>描述</th>'
   PRINT N'<th>主键</th>'
   PRINT N'<th>外键</th>'
   PRINT N'<th>类型</th>'
   PRINT N'<th>长度</th>'
   PRINT N'<th>数值精度</th>'
   PRINT N'<th>小数位数</th>'
   PRINT N'<th>允许为空</th>'
   PRINT N'<th>计算列</th>'
   PRINT N'<th>标识列</th>'
   PRINT N'<th>默认值</th>'

   SELECT '</tr><tr>',
          '<td>' + CAST (clmns.name AS VARCHAR (35)) + '</td>',
            '<td>'
          + ISNULL (CAST (exprop.value AS NVARCHAR (500)), '')
          + '</td>',
            '<td>'
          + CAST (ISNULL (idxcol.index_column_id, 0) AS VARCHAR (20))
          + '</td>',
            '<td>'
          + CAST (
               ISNULL (
                  (SELECT TOP 1 1
                     FROM sys.foreign_key_columns AS fkclmn
                    WHERE     fkclmn.parent_column_id = clmns.column_id
                          AND fkclmn.parent_object_id = clmns.object_id),
                  0) AS VARCHAR (20))
          + '</td>',
          '<td>' + CAST (udt.name AS CHAR (15)) + '</td>',
            '<td>'
          + CAST (
               CAST (
                  CASE
                     WHEN     typ.name IN (N'nchar', N'nvarchar')
                          AND clmns.max_length <> -1
                     THEN
                        clmns.max_length / 2
                     ELSE
                        clmns.max_length
                  END AS INT) AS VARCHAR (20))
          + '</td>',
            '<td>'
          + CAST (CAST (clmns.precision AS INT) AS VARCHAR (20))
          + '</td>',
          '<td>' + CAST (CAST (clmns.scale AS INT) AS VARCHAR (20)) + '</td>',
          '<td>' + CAST (clmns.is_nullable AS VARCHAR (20)) + '</td>',
          '<td>' + CAST (clmns.is_computed AS VARCHAR (20)) + '</td>',
          '<td>' + CAST (clmns.is_identity AS VARCHAR (20)) + '</td>',
            '<td>'
          + isnull (CAST (cnstr.definition AS VARCHAR (20)), '')
          + '</td>'
     FROM sys.tables AS tbl
          LEFT JOIN sys.all_columns AS clmns
             ON clmns.object_id = tbl.object_id
          LEFT JOIN sys.indexes AS idx
             ON idx.object_id = clmns.object_id AND 1 = idx.is_primary_key
          LEFT JOIN sys.index_columns AS idxcol
             ON     idxcol.index_id = idx.index_id
                AND idxcol.column_id = clmns.column_id
                AND idxcol.object_id = clmns.object_id
                AND 0 = idxcol.is_included_column
          LEFT JOIN sys.types AS udt ON udt.user_type_id = clmns.user_type_id
          LEFT JOIN sys.types AS typ
             ON     typ.user_type_id = clmns.system_type_id
                AND typ.user_type_id = typ.system_type_id
          LEFT JOIN sys.default_constraints AS cnstr
             ON cnstr.object_id = clmns.default_object_id
          LEFT JOIN sys.extended_properties exprop
             ON     exprop.major_id = clmns.object_id
                AND exprop.minor_id = clmns.column_id
                AND exprop.name = 'MS_Description'
    WHERE tbl.name = @TableName
   ORDER BY clmns.column_id ASC

   PRINT '</tr></table>'
   PRINT '</div>'
   FETCH NEXT FROM Tbls   INTO @TableName
END

PRINT '</body></HTML>'
CLOSE Tbls
DEALLOCATE Tbls

​

2. SQL cache cleanup

--清除存储过程缓存  
DBCC FREEPROCCACHE 
--清除会话缓存 
DBCC FREESESSIONCACHE 
--清除系统缓存 
DBCC FREESYSTEMCACHE('All') 
--清除所有缓存 
DBCC DROPCLEANBUFFERS
GO

3. Query the existence of data tables and data volume in the database

--查询数据库中表的数据量
SELECT a.name,b.rows FROM sysobjects a  
INNER JOIN sysindexes b ON a.id=b.id   
WHERE b.indid IN(0,1) AND a.Type='u'  
ORDER BY b.rows desc

4. Database memory settings

--打开高级配置 
exec sp_configure'show advanced options', 1 
GO
--设置最大内存MB  2G
exec sp_configure 'max server memory', 2048 
EXEC ('RECONFIGURE' )
--设置执行时间
WAITFOR DELAY '00:00:10'
--设置最大内存MB  20G
EXEC  sp_configure 'max server memory', 20480 
EXEC ('RECONFIGURE' )
GO
--关闭高级配置 
exec sp_configure'show advanced options',0 
GO

5. Database table relationship query

SELECT
    fk.name 'FK Name',
    tp.name 'Parent table',
    cp.name, cp.column_id,
    tr.name 'Refrenced table',
    cr.name, cr.column_id
FROM 
    sys.foreign_keys fk
INNER JOIN 
    sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN 
    sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN 
    sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN 
    sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN 
    sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
ORDER BY
    tp.name, cp.column_id

 

 

Guess you like

Origin blog.csdn.net/CONSOLE11/article/details/107109041