![](/img/trans.png)
[英]How to store more than 8000 characters in a column in SQL Server 2005?
[英]How to Find the Database Views Which are not executed or Accessed for more than 6 Months in SQL Server 2005
我想通過識別和刪除視圖和存儲過程來清理數據庫,這些視圖和存儲過程在SQL Server 2005中未使用或較長時間(可能是過去6個月或1年)未使用。
請幫忙。
除非您在系統24/7上運行跟蹤並保留數據或使用2008年的審核機制,否則您不能100%執行此操作。
重新啟動系統時,所有數據都會丟失,否則,您可以按照以下查詢找到特定對象的上次使用時間
select
DB_NAME(us.[database_id]) as [db],
OBJECT_NAME(us.[object_id],us.[database_id]) as [object],
MAX(us.[last_user_lookup]) as [last_user_lookup],
MAX(us.[last_user_scan]) as [last_user_scan],
MAX(us.[last_user_seek]) as [last_user_seek]
from sys.dm_db_index_usage_stats us
where us.[database_id] = DB_ID()
AND us.[object_id] = OBJECT_ID('tblname')
group by us.[database_id], us.[object_id];
基於@Koushick的答案,我使用此..解決了該問題。
SELECT DB_NAME(us.[database_id]) AS [db],
OBJECT_NAME(us.[object_id], us.[database_id]) AS [object],
MAX(us.[last_user_lookup]) AS [last_user_lookup],
MAX(us.[last_user_scan]) AS [last_user_scan],
MAX(us.[last_user_seek]) AS [last_user_seek]
FROM sys.dm_db_index_usage_stats AS us
WHERE DB_NAME(us.[database_id]) = 'your database name'
AND OBJECT_NAME(us.[object_id], us.[database_id]) = 'your object'
GROUP BY us.[database_id], us.[object_id];
然后,您可以快速排序並處理日期,以查看上次使用對象的時間,而不是上次修改的時間 。
要查找早於特定日期的視圖/存儲過程,可以使用以下查詢
SELECT [name],create_date,modify_date
FROM sys.views (or sys.procedures)
WHERE modify_date<= 'date_older_than_you_want'
要找出未使用的視圖,可以使用以下查詢:
SELECT [name],create_date,modify_date
FROM
sys.views
where create_date=modify_date
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.