精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SQL Server如何找出數據庫中沒有索引的表

數據庫 MySQL
在SQL Server數據庫的維護中,我們經常需要巡檢,找出一些沒有索引的表,然后根據實際情況判斷是否需要增加索引。

 [[398124]]

本文轉載自微信公眾號「DBA閑思雜想錄」,作者瀟湘隱者。轉載本文請聯系DBA閑思雜想錄公眾號。

在SQL Server數據庫的維護中,我們經常需要巡檢,找出一些沒有索引的表,然后根據實際情況判斷是否需要增加索引。下面分享一個腳本,如何找出當前數據庫中沒有索引的表信息。

  1. /************************************************************************************************************** 
  2.     --腳本名稱  :      find_without_index_tables.sql 
  3.     --腳本作者  :       瀟湘隱者 
  4.     --創建日期  :       2016‎-10‎-‎27‎ 
  5. *************************************************************************************************************** 
  6.     腳本功能    :      查找數據庫中沒有任何索引的表,并計算表的行數,用作是否創建索引的一個依據 
  7. *************************************************************************************************************** 
  8.     注意事項    :       需要切換到具體的用戶數據庫后執行腳本 
  9. *************************************************************************************************************** 
  10.     參考資料    :        
  11. *************************************************************************************************************** 
  12.     更新記錄    :      2016‎-10‎-‎27‎:創建此腳本 
  13.                       2020-03-14: 修改腳本,新增SERVER_NAME,DB_NAME 
  14. ***************************************************************************************************************/ 
  15. SELECT DISTINCT 
  16.         @@SERVERNAME              AS [SERVER_NAME] 
  17.        ,DB_NAME()                 AS [DB_NAME] 
  18.        ,so.object_id              AS [OBJECT_ID]  
  19.        ,SCHEMA_NAME(so.schema_id) +'.' +OBJECT_NAME(so.object_id)  
  20.                                   AS [TABLE_NAME]  
  21.        ,MAX(dmv.rows)             AS [APPROXIMATE_ROWS]  
  22.        ,MAX(d.ColumnCount)        AS [COLUMN_COUNT] 
  23. FROM    sys.objects so ( NOLOCK ) 
  24.         JOIN sys.indexes si ( NOLOCK ) ON so.object_id = si.object_id 
  25.                                           AND so.type IN ( N'U', N'V' ) 
  26.         JOIN sysindexes dmv ( NOLOCK ) ON so.object_id = dmv.id 
  27.                                           AND si.index_id = dmv.indid 
  28.         FULL OUTER JOIN ( SELECT    object_id , 
  29.                                     COUNT(1) AS ColumnCount 
  30.                           FROM      sys.columns (NOLOCK) 
  31.                           GROUP BY  object_id 
  32.                         ) d ON d.object_id = so.object_id 
  33. WHERE   so.is_ms_shipped = 0 
  34.         AND so.object_id NOT IN ( 
  35.         SELECT  major_id 
  36.         FROM    sys.extended_properties (NOLOCK) 
  37.         WHERE   name = N'microsoft_database_tools_support' ) 
  38.         AND INDEXPROPERTY(so.object_id, si.name'IsStatistics') = 0 
  39. GROUP BY so.schema_id , 
  40.         so.object_id 
  41. HAVING  ( CASE OBJECTPROPERTY(MAX(so.object_id), 'TableHasClustIndex'
  42.             WHEN 0 THEN COUNT(si.index_id) - 1 
  43.             ELSE COUNT(si.index_id) 
  44.           END = 0 ) 
  45. ORDER BY [APPROXIMATE_ROWS] DESC

上面腳本只能查詢當前數據庫中沒有索引的表,我們知道,生產環境中,一個實例下面往往有多個用戶數據庫,我們需要采集每個數據庫中沒有索引的表信息,那么上面腳本明顯有點硬傷,所以,重寫了這個腳本。

  1. /************************************************************************************************************** 
  2.     --腳本名稱  :      find_without_index_tables.sql 
  3.     --腳本作者  :       瀟湘隱者 
  4.     --創建日期  :       2016‎-10‎-‎27‎ 
  5. *************************************************************************************************************** 
  6.     腳本功能    :      批量查找實例下面的每個數據庫,找出沒有任何索引的表 
  7. *************************************************************************************************************** 
  8.     注意事項    :       暫無 
  9. *************************************************************************************************************** 
  10.     參考資料    :        
  11. *************************************************************************************************************** 
  12.     更新記錄    :      2016‎-10‎-‎27‎:創建此腳本 
  13.                       2020-03-14: 修改腳本,新增SERVER_NAME,DB_NAME 
  14. ***************************************************************************************************************/ 
  15.  
  16.  
  17. IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects WHERE id = OBJECT_ID('tempdb.dbo.#Database')) 
  18. BEGIN 
  19.     DROP TABLE #Database
  20. END 
  21.  
  22. CREATE TABLE #Database (database_id INT  ,database_name NVARCHAR(128) ); 
  23.  
  24.  INSERT INTO #Database 
  25.  SELECT database_id, name FROM sys.databases WHERE state_desc='ONLINE'  
  26.  AND name NOT IN ('master','msdb','tempdb','model''distribution'
  27.  
  28.  
  29. DECLARE @database_name    NVARCHAR(128); 
  30. DECLARE @database_id      INT
  31. DECLARE @cmdText          NVARCHAR(MAX); 
  32.  
  33. SET @database_name =''
  34. SET @database_id =1; 
  35.  
  36. IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects WHERE id = OBJECT_ID('tempdb.dbo.#TAB_NO_INDEX_INFO')) 
  37. BEGIN 
  38.     DROP TABLE #TAB_NO_INDEX_INFO; 
  39. END 
  40.  
  41. CREATE TABLE #TAB_NO_INDEX_INFO( 
  42.     [SERVER_NAME] [NVARCHAR](32) NULL
  43.     [INSTANCE_NAME] [NVARCHAR](64) NULL
  44.     [DATABASE_NAME] [NVARCHAR](32) NULL
  45.     [TABLE_NAME] [NVARCHAR](128) NULL
  46.     [OBJECT_ID] [INTNULL
  47.     [APPROXIMATE_ROWS] [INTNULL
  48.     [COLUMN_COUNT] [INTNULL 
  49.     ); 
  50.  
  51. WHILE(1=1) 
  52.   
  53. BEGIN 
  54.     SELECT TOP 1 
  55.             @database_id = database_id , 
  56.             @database_name = database_name 
  57.     FROM    #Database 
  58.     WHERE   database_id > @database_id -- next database_name greater than @database_id 
  59.     ORDER BY database_id -- database_id order  
  60.   
  61.      -- exit loop if no more name greater than the last one used 
  62.     If @@rowcount = 0 Break  
  63.  
  64.     SET @cmdText='USE ' + @database_name  +'; 
  65.          --GO 
  66.          INSERT  INTO #TAB_NO_INDEX_INFO 
  67.         ( SERVER_NAME , 
  68.           INSTANCE_NAME , 
  69.           DATABASE_NAME , 
  70.           TABLE_NAME , 
  71.           OBJECT_ID , 
  72.           APPROXIMATE_ROWS , 
  73.           COLUMN_COUNT 
  74.         ) 
  75.         SELECT  DISTINCT 
  76.                CAST(SERVERPROPERTY(''MachineName''AS NVARCHAR(32)) 
  77.                                                     AS [SERVER_NAME]   , 
  78.                 @@SERVICENAME                       AS [INSTANCE_NAME] , 
  79.                 DB_NAME()                           AS [DATABASE_NAME] , 
  80.                 SCHEMA_NAME(so.schema_id)+ ''.'' +   
  81.                 OBJECT_NAME(so.object_id)           AS [TABLE_NAME]    , 
  82.                 so.object_id                        AS [OBJECT_ID]     , 
  83.                 MAX(dmv.rows)                       AS [APPROXIMATE_ROWS] , 
  84.                 MAX(d.ColumnCount)                  AS [COLUMN_COUNT] 
  85.         FROM    sys.objects so ( NOLOCK ) 
  86.                 JOIN sys.indexes si ( NOLOCK ) ON so.object_id = si.object_id 
  87.                                                   AND so.type IN ( N''U'', N''V'' ) 
  88.                 JOIN sysindexes dmv ( NOLOCK ) ON so.object_id = dmv.id 
  89.                                                   AND si.index_id = dmv.indid 
  90.                 FULL OUTER JOIN ( SELECT    object_id , 
  91.                                             COUNT(1) AS ColumnCount 
  92.                                   FROM      sys.columns (NOLOCK) 
  93.                                   GROUP BY  object_id 
  94.                                 ) d ON d.object_id = so.object_id 
  95.         WHERE   so.is_ms_shipped = 0 
  96.                 AND so.object_id NOT IN ( 
  97.                 SELECT  major_id 
  98.                 FROM    sys.extended_properties (NOLOCK) 
  99.                 WHERE   name = N''microsoft_database_tools_support'' ) 
  100.                 AND INDEXPROPERTY(so.object_id, si.name''IsStatistics'') = 0 
  101.         GROUP BY so.schema_id , 
  102.                 so.object_id 
  103.         HAVING  ( CASE OBJECTPROPERTY(MAX(so.object_id), ''TableHasClustIndex''
  104.                     WHEN 0 THEN COUNT(si.index_id) - 1 
  105.                     ELSE COUNT(si.index_id) 
  106.                   END = 0 ) 
  107.         ORDER BY [APPROXIMATE_ROWS] DESC; '  
  108.         PRINT @cmdText; 
  109.  
  110.  
  111.         EXEC ( @cmdText); 
  112.         --EXEC SP_EXECUTESQL @cmdText, N'@database_name NVARCHAR(32)',@database_name 
  113.  
  114.   
  115.  Delete Db 
  116.   From #Database Db WHERE database_id=@database_id; 
  117.   
  118. END 
  119.  
  120. SELECT  * 
  121. FROM    #TAB_NO_INDEX_INFO 
  122. ORDER BY APPROXIMATE_ROWS DESC
  123.  
  124.  
  125. --找出數據量超過1000行沒有索引信息的表 
  126. SELECT * FROM #TAB_NO_INDEX_INFO 
  127. WHERE APPROXIMATE_ROWS > 1000 
  128. ORDER BY APPROXIMATE_ROWS DESC 

當你維護了很多SQL Server數據庫時,使用上面腳本到每臺SQL Server實例上跑一次,也是一件非常麻煩耗時的事情,所以還是需要自動化作業處理,定時使用Python腳本去每臺SQL Server實例上采集數據存儲下來,然后DBA只需做好兩件事情:監控采集數據和分析處理數據。這里就不貼Python腳本了,其實就是循環所有SQL Server實例,運行上面腳本,將采集到的相關數據存儲起來。

 

責任編輯:武曉燕 來源: DBA閑思雜想錄
相關推薦

2010-07-09 11:28:12

SQL Server數

2010-07-01 14:18:09

SQL Server數

2010-07-15 17:28:50

SQL Server

2011-08-03 10:04:57

SQL Server數沒有主鍵的表

2011-08-04 15:55:25

SQL Server數

2010-07-09 12:30:14

Sql Server數

2011-07-28 11:44:46

SQL Server數合并表格數據

2011-04-02 13:21:34

SQL Server數據庫全文索引

2010-05-10 18:54:12

Oracle數據庫索引

2011-03-11 13:26:23

SQL Server數導入數據

2010-07-07 10:31:43

SQL Server數

2010-09-25 15:37:38

SQL語句

2010-07-08 15:55:25

SQL Server

2011-08-16 09:05:21

SQL Server數測試索引空間換時間

2010-09-08 16:03:57

SQL臨時表數據庫

2011-08-09 12:27:16

SQL Server tempdb

2010-07-08 11:05:14

SQL Server數

2011-03-22 13:49:20

SQL Server數維度表事實表

2015-10-30 14:00:33

adosybaseodbc

2010-07-01 15:02:29

SQL Server數
點贊
收藏

51CTO技術棧公眾號

亚洲成人免费观看| 狠狠色综合网| 欧美另类变人与禽xxxxx| 中国一级黄色录像| 蜜桃视频久久一区免费观看入口| 亚洲欧美日韩国产一区| www.美女亚洲精品| 欧美一区二区免费在线观看| 中文字幕日本一区二区| 亚洲精品日韩一| 蜜桃传媒一区二区| 国产免费黄色录像| 久久精品女人| 欧美日本国产在线| 2019男人天堂| 国产精品zjzjzj在线观看| 91成人抖音| 91视频你懂的| 亚洲最大福利视频网| 日本久久综合网| 国产综合亚洲精品一区二| 亚洲品质视频自拍网| 日本成人在线免费| 成人在线不卡| 欧美午夜激情视频| 日韩精品久久一区二区| 日韩黄色影院| 久久综合中文字幕| 国产精成人品localhost| 一级特黄录像免费看| 久久久精品日韩| 久久久久久久久中文字幕| 三级黄色录像视频| 精品日本12videosex| 亚洲精品久久久久久久久| 樱花草www在线| 97精品国产99久久久久久免费| 午夜成人免费电影| 91黄色在线看| 国产美女一区视频| 亚洲精品你懂的| 视频一区二区在线观看| 青青草超碰在线| 99久久久国产精品| 国产免费一区二区| 免费观看毛片网站| 国产高清久久久久| 亚洲最大的av网站| 国产探花精品一区二区| 九色|91porny| 国产日韩欧美在线| 亚洲中文字幕一区二区| 日本特黄久久久高潮| 国产91亚洲精品| 天码人妻一区二区三区在线看| 亚洲免费高清| 97国产精品视频| 亚洲男人第一av| 国产欧美短视频| 麻豆精品在线观看| 欧美理论片在线观看| 久久久久亚洲AV成人| 欧美一区二区| 欧美激情成人在线视频| 久一视频在线观看| 在线观看视频日韩| 欧美一级淫片videoshd| 麻豆精品久久久久久久99蜜桃| 久久一二三四| 国产精品美女999| 91资源在线视频| 国产一区二区三区精品视频| 成人网欧美在线视频| 国内老熟妇对白hdxxxx| 成人免费毛片app| 久久久久久国产精品mv| 北岛玲一区二区三区| 国产精品久久看| 特级黄色录像片| 1区2区在线| 日本韩国一区二区三区| 亚洲精品mv在线观看| 91久久精品无嫩草影院| 亚洲国产成人av在线| 88久久精品无码一区二区毛片| 精品国产乱码久久久| 久久久精品欧美| 国产真实的和子乱拍在线观看| 国产精品久久久久9999高清| 国产精品女主播视频| 国产三级视频在线播放| 91日韩在线专区| 亚洲欧美日韩精品综合在线观看| 色呦呦在线播放| 色综合天天综合狠狠| 四季av一区二区三区| 国产精品x8x8一区二区| 在线观看视频亚洲| 久久精品国产亚洲AV无码麻豆| 老司机精品久久| av日韩中文字幕| 成人av毛片| 午夜亚洲国产au精品一区二区| 日韩无套无码精品| 99精品视频99| 亚洲黄色在线| 国产精品入口尤物| 韩国av永久免费| 中文字幕+乱码+中文字幕一区| 欧美交换配乱吟粗大25p| 成人在线爆射| 亚洲精品美女网站| 91麻豆免费视频网站| 首页欧美精品中文字幕| 国产精品一国产精品最新章节| 在线观看麻豆| 一本一道综合狠狠老| 精品人妻无码中文字幕18禁| 日韩伦理一区| 国产97在线亚洲| 日本毛片在线观看| 亚洲精品乱码久久久久久日本蜜臀| 别急慢慢来1978如如2| 精品自拍偷拍| 欧美日韩国产va另类| 91精品中文字幕| 欧美激情资源网| 99热成人精品热久久66| 另类图片第一页| 久久久久久国产精品久久| 国产一区二区三区在线观看| 国产调教视频一区| 国产亚洲天堂网| 卡一精品卡二卡三网站乱码 | 国产精品久久中文| 日韩成人黄色| 欧美性xxxx极品hd欧美风情| 99精品一区二区三区无码吞精 | 看av免费毛片手机播放| 亚洲综合色婷婷在线观看| www.欧美精品一二三区| 中文字幕永久在线观看| 中文字幕免费一区| 成人一区二区三| 国产一区二区三区四区五区传媒 | 激情网站在线观看| 久久先锋资源网| 欧美日韩视频在线观看一区二区三区| 粗大的内捧猛烈进出视频| 先锋资源久久| 成人自拍性视频| 黄色一级片在线观看| 欧美电影影音先锋| 欧美性x x x| 国产激情一区二区三区桃花岛亚洲| 亚洲第一精品区| 精品国产亚洲一区二区三区| 久久夜色精品亚洲噜噜国产mv| 91美女精品网站| 日韩一区日韩二区| 欧美69精品久久久久久不卡| 国产精品大片| 国产精品自拍首页| 午夜影院在线播放| 亚洲性视频网址| 中文天堂在线播放| 中文字幕亚洲精品在线观看| 国内精品国产三级国产aⅴ久| 欧美福利一区| 精品中文字幕人| 国产一区二区三区影视| 久久久极品av| 丰满熟妇人妻中文字幕| 欧美三级免费观看| 日本美女bbw| 国产精品综合二区| 亚洲熟妇无码另类久久久| 免费精品国产| 国产视频福利一区| 国模私拍视频在线播放| 亚洲九九九在线观看| 亚洲午夜精品久久久| 一区二区免费在线| 黄色性生活一级片| 久久成人综合网| 久草免费福利在线| 精品影片在线观看的网站| 国产精品永久免费观看| 国产精品蜜臀| 一区二区三区回区在观看免费视频| 一本色道久久综合精品婷婷| 亚洲一卡二卡三卡四卡无卡久久 | 欧美精品成人在线| 国产中文字幕在线播放| 日韩一区二区在线看| 99精品在线播放| 亚洲免费av在线| 免费一级做a爰片久久毛片潮| 狠狠色伊人亚洲综合成人| 91专区在线观看| 亚洲国产一成人久久精品| 蜜桃传媒视频麻豆第一区免费观看 | 国产精品密蕾丝视频下载| 国产在线观看精品一区二区三区| 欧洲成人综合网| 色噜噜国产精品视频一区二区 | 成人av在线电影| 国产又黄又猛又粗又爽的视频| 黑人一区二区| 国产又大又长又粗又黄| 青青久久av| 国产成人av一区二区三区| 久久免费影院| 日韩免费在线视频| av毛片午夜不卡高**水| 久久夜色精品亚洲噜噜国产mv| 精华区一区二区三区| 亚洲成人网在线观看| 国产精品久久久久毛片| 欧美性猛交xxxx黑人交| 亚洲天堂日韩av| 亚洲自拍偷拍综合| h色网站在线观看| 国产精品网站在线| 在线观看日本中文字幕| 久久综合九色综合97婷婷| 日本一区二区免费视频| 国产一区 二区 三区一级| 色噜噜狠狠永久免费| 91久久午夜| 黄色a级在线观看| 色综合五月天| 亚洲欧美日韩精品在线| 精品理论电影在线| 日韩欧美视频一区二区| 亚洲区小说区图片区qvod按摩| 国产精品久久亚洲| 亚洲超碰在线观看| 91成人免费视频| 国产精品久久久久久av公交车| 国产在线播放91| 欧美男女视频| 91久久国产精品91久久性色| 日韩美香港a一级毛片| 国产欧美一区二区三区视频 | 在线亚洲成人| heyzo国产| 亚洲一级在线| 国产成人综合一区| 日韩高清在线不卡| 天天爽人人爽夜夜爽| 麻豆久久一区二区| 狠狠操狠狠干视频| 国产在线一区二区| 黑人巨大猛交丰满少妇| 丁香六月久久综合狠狠色| 四虎永久免费观看| 91丨九色丨尤物| 中文字幕免费高清| 国产精品沙发午睡系列990531| 精品在线观看一区| 一区二区三区中文字幕在线观看| 久久国产精品波多野结衣| 香蕉成人啪国产精品视频综合网| 草久久免费视频| 欧美色大人视频| 国产精品久久久久久久免费| 日韩精品中午字幕| 日本人妻丰满熟妇久久久久久| 日韩精品极品视频| av大片在线观看| 色在人av网站天堂精品| 日本在线高清| 国产欧美日韩视频| 亚洲视频精选| 欧美日韩国产三区| 国产高清一区| 大胆欧美熟妇xx| 久久国产精品99国产| 最新天堂在线视频| 国产一区二区精品在线观看| 国产熟女高潮一区二区三区| 国产日韩精品一区二区三区在线| 男人av资源站| 亚洲成在线观看| 成人黄色三级视频| 欧美成人综合网站| 可以直接在线观看的av| 久久av.com| 在线能看的av网址| 91热福利电影| 蜜桃一区二区三区| 中国一区二区三区| 亚洲成人在线| 高清一区在线观看| 成人免费看的视频| 亚洲精品自拍视频在线观看| 亚洲午夜激情网站| 欧美 亚洲 另类 激情 另类| 欧美大胆一级视频| 午夜在线小视频| 98视频在线噜噜噜国产| 激情欧美一区二区三区黑长吊| 国产精品一区二区a| 97精品中文字幕| 欧美激情 国产精品| 精品制服美女久久| 免费成人深夜夜行p站| 一区二区三区免费| 中文字幕a级片| 亚洲精品视频中文字幕| 欧美aaaaaaa| 91久久嫩草影院一区二区| 免费视频一区三区| 国产无限制自拍| 国产精品亚洲一区二区三区在线| 欧洲av一区二区三区| 性久久久久久久久久久久| 国产草草影院ccyycom| 中文字幕视频一区二区在线有码| 天堂资源在线| 国产伦理久久久| 午夜国产精品视频| 91精品999| 国产精品美女久久久久久久久| 日本视频在线观看免费| 亚洲成avwww人| 牛牛精品视频在线| 亚洲一区中文字幕| 国产精品88久久久久久| 鲁一鲁一鲁一鲁一av| 国产调教视频一区| 无码免费一区二区三区| 亚洲精品日韩在线| xxxxxx欧美| 欧美一区免费视频| 美女网站久久| 性欧美13一14内谢| 色悠悠亚洲一区二区| 免费在线视频一级不卡| 清纯唯美日韩制服另类| 五月天亚洲一区| 欧美日韩激情视频在线观看| 99视频精品在线| 日韩欧美中文字幕一区二区| 日韩成人小视频| 亚洲国产欧美日本视频| 欧美日韩精品久久| 久久亚洲综合| www中文在线| 91精品欧美久久久久久动漫| av在线免费网站| 成人免费在线视频网址| 天天影视欧美综合在线观看| 久久久精品视频国产| 亚洲综合无码一区二区| 亚洲AV无码一区二区三区性| 久久乐国产精品| 日本韩国欧美超级黄在线观看| 116极品美女午夜一级| 中文字幕久久午夜不卡| 一级特黄aaa大片| 欧美大肥婆大肥bbbbb| 红杏成人性视频免费看| 中国丰满人妻videoshd| 中文字幕av一区二区三区高| 一级黄色片免费看| 色综合导航网站| 国产乱论精品| 日本熟妇人妻中出| 亚洲人成人一区二区在线观看| 精品国产乱码久久久久久蜜臀网站| 久久久久久久久久久网站| 国产亚洲一卡2卡3卡4卡新区 | 日韩激情啪啪| 韩国视频一区二区三区| 亚洲日本在线a| 午夜福利视频一区二区| 国产精品九九久久久久久久| 一个色综合网| 久久久久亚洲av无码专区桃色| 欧美日韩精品久久久| 久久99亚洲网美利坚合众国| 日韩久久久久久久久久久久久| 国产美女精品人人做人人爽| 在线天堂中文字幕| 久久天天躁夜夜躁狠狠躁2022| 精品亚洲免a| www.国产福利| 狠狠躁夜夜躁人人爽天天天天97| 日本中文字幕在线观看| 国产美女99p| 久久精品国产色蜜蜜麻豆| 日本少妇性生活| 日韩在线视频网| 久久九九热re6这里有精品| 久久人人爽av| 动漫精品一区二区| 在线三级电影| 日本在线播放一区|