我不確定是否可以在此處詢問此問題或服務器故障。我想知道...是否有辦法快速撤消由SQL Server 2005 Tuning Advsor所做的更改,而不是從備份恢復?撤消對SQL Server數據庫調整所做的更改
回答
有一個辦法,只要你還沒有給他們改名通常數據庫引擎優化顧問生成的對象都有前綴_dta
這樣你就可以運行這個查詢
查看它們索引
SELECT
*
FROM
sys.indexes where name like '_dta%'
從統計
SELECT
*
FROM
sys.stats where name like '_dta%'
從那裏我猜你會知道放棄什麼項目
hey raymund最初模糊名稱的原因是什麼? – 2012-11-01 16:47:52
沒有官方參考撤消此操作,就像不會有一個官方從DROP DATABASE恢復的建議。一個負責任的DBA只是不做這些事情。
如果您剛剛完成並觸發了快感,您很可能會將名稱作爲默認值 - 這對您有很大的幫助。 Raymund的回答幾乎就在那裏。但是,如果你已經完成了一段時間,那麼你不希望UNDO所有的良好數據和索引。第二部分難題是檢查索引何時最後更新。如果您剛剛在幾分鐘前完成了此操作,這對UNDO來說是一個很好的時間表,請檢查此查詢以獲取剛剛重建的索引和統計信息。
SELECT object_name(object_id) tablename,
name indexname,
nullif(name,name) statsname,
STATS_DATE(object_id, index_id) lastupdated
from sys.indexes
where STATS_DATE(object_id, index_id) >= dateadd(hh,-1,getdate())
-- and name like '_dta%'
union all
SELECT object_name(object_id) tablename,
nullif(name,name) indexname,
name statsname,
STATS_DATE(object_id, stats_id) lastupdated
from sys.stats
where STATS_DATE(object_id, stats_id) >= dateadd(hh,-1,getdate())
-- and name like '_dta%'
order by lastupdated desc
此過濾器列表下降到僅已在過去的每小時更新索引。但是,默認情況下,auto-stats通常處於打開狀態,偶爾也會重新生成統計數據,因此您不會想要刪除顯示的索引全部。取消註釋and name like '_dta%'
將是一個開始,除非您重命名它們 - 在這種情況下,您肯定可以回想起您將它們命名爲?
我經常使用僞動態SQL來生成我需要的SQL語句。 這將刪除以_dta開頭的所有索引。
SELECT
'下降指數' + OBJECT_NAME(的object_id)+ '[' +名稱+ ']' FROM
SYS.INDEXES 其中名稱像 '_dta%'
粘貼從結果這到一個新的窗口,然後我會刪除之前手動仔細檢查每個索引。
同樣,你可以做同樣的事情下探統計
選擇
'DROP INDEX' + OBJECT_NAME(OBJECT_ID)+ '[' +名字+ ']' FROM
SYS。統計信息 其中name'_dta%'
- 1. 撤消對R中ISLR數據集所做的更改
- 2. 撤消自上次恢復以來SQL Server數據庫中的更改
- 3. 撤消對實體行所做的更改
- 4. 對SQL數據庫所做的日誌記錄更改
- 5. 如何撤消更新函數SQL Server?
- 6. 如何對SQLite數據庫更改實現單步撤消?
- 7. Git - 撤消所有更改更改
- 8. 調用什麼函數來撤消在UITextField中所做的更改?
- 9. 我希望能夠撤消在JTextArea中所做的更改
- 10. 如何撤消運行配置中所做的更改
- 11. 在SQL Server 2008中撤消表更新
- 12. 如何更改SQL Server數據庫的所有者?
- 13. 將SQL Server數據庫中的所有varchar列更改爲nvarchar
- 14. 更改SQL Server數據庫排序
- 15. SQL Server數據庫更改部署
- 16. 更改SQL Server數據庫版本
- 17. 從SQL Server更改爲Oracle數據庫
- 18. 反映對datagridview上的數據庫所做的更改
- 19. 完全撤消對TortoiseSVN所做的更改並提交最新文件
- 20. 使用vi編輯器撤消對xml文件所做的更改
- 21. 的Git撤消更改存儲庫
- 22. 從Windows管理SQL Server 2000數據庫和更改整列
- 23. 外部對數據庫所做的更改沒有反映回
- 24. 將對模型所做的更改提交到數據庫
- 25. 撤消INF更改
- 26. Git - 撤消更改
- 27. git撤消更改
- 28. CKEDITOR:撤消所有DOM更改
- 29. 用數據庫撤消
- 30. 更改數據庫所有權SQL Server 2012 Express
我認爲調優顧問生成了一個腳本來運行,而不是對數據庫進行更改 - 如果是這樣,沒有任何可撤消的。 – adrianbanks 2010-08-30 16:10:19
@adrianbanks:有一個選項可以自動應用建議。請參閱:[如何:實施調整建議](http://msdn.microsoft.com/en-us/library/ms175529.aspx) – 2010-08-30 19:02:13