我知道你可以設置一個默認的填充因子,但是我想在整個服務器上將現有的填充因子改回默認值。填充因子 - SQL Server,是否有方法在數據庫,服務器或模式中設置填充因子?
回答
DECLARE @Database VARCHAR(255)
DECLARE @Table VARCHAR(255)
DECLARE @cmd NVARCHAR(500)
DECLARE @fillfactor INT
SET @fillfactor = 90
DECLARE DatabaseCursor CURSOR FOR
SELECT name FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','msdb','tempdb','model','distribution')
ORDER BY 1
OPEN DatabaseCursor
FETCH NEXT FROM DatabaseCursor INTO @Database
WHILE @@FETCH_STATUS = 0
BEGIN
SET @cmd = 'DECLARE TableCursor CURSOR FOR SELECT ''['' + table_catalog + ''].['' + table_schema + ''].['' +
table_name + '']'' as tableName FROM [' + @Database + '].INFORMATION_SCHEMA.TABLES
WHERE table_type = ''BASE TABLE'''
-- create table cursor
EXEC (@cmd)
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @Table
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@@MICROSOFTVERSION/POWER(2, 24) >= 9)
BEGIN
-- SQL 2005 or higher command
SET @cmd = 'ALTER INDEX ALL ON ' + @Table + ' REBUILD WITH (FILLFACTOR = ' + CONVERT(VARCHAR(3),@fillfactor) + ')'
EXEC (@cmd)
END
ELSE
BEGIN
-- SQL 2000 command
DBCC DBREINDEX(@Table,' ',@fillfactor)
END
FETCH NEXT FROM TableCursor INTO @Table
END
CLOSE TableCursor
DEALLOCATE TableCursor
FETCH NEXT FROM DatabaseCursor INTO @Database
END
CLOSE DatabaseCursor
DEALLOCATE DatabaseCursor
其實從本文中可以找到https://www.mssqltips.com/sqlservertip/1367/sql-server-script-to-rebuild- all-indexes-for-all-tables-and-all-databases/ –
但我還沒有真正理解它 - 即時通訊新的SQL和現在搞清楚了 –
只要瞭解'CURSOR'和'DYNAMIC'查詢 –
默認填充因子爲0(100%)和本文中的腳本會得到你需要
默認是0,不是80. 0等於100,或者「完整的葉子頁面」。 https://msdn.microsoft.com/en-us/library/ms177459(v=sql.120).aspx – onupdatecascade
我的不好,做了編輯 –
我試着運行代碼,但我得到錯誤消息「A cursor名稱「TableCursor」不存在。「我試圖拿出數據庫光標和數據庫名稱中的硬編碼,但這也不起作用 - 任何人有任何想法? –
BEGIN TRAN
DECLARE @table_name VARCHAR(MAX)是什麼
DECLARE table_cursor CURSOR LOCAL FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
OPEN table_cursor
FETCH NEXT FROM table_cursor INTO @table_name
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'ALTER INDEX ALL ON '[email protected]_name+'
REBUILD WITH(FILLFACTOR = 100)」
END
CLOSE table_cursor;
DEALLOCATE table_cursor;
ROLLBACK TRAN
- 1. 填充因子SQL Server
- 2. 填充因子和索引
- 3. MySql索引填充因子?
- 4. 更改現有表的填充因子
- 5. 填充因子和插入速度
- 6. SQL Server:在填充因子小於100%後預計有多少指數增長
- 7. 貓鼬 - 填充子模式子數組
- 8. Mongo - 手動(重新)設置填充因子
- 9. 如何填充SQL Server Compact數據庫?
- 10. 從SQL Server數據庫填充TreeView
- 11. HashSet中填充比率或負載因子概念的需求
- 12. Sql Server通過tsql更改所有索引的填充因子值
- 13. 在Excel(2010)電子表格中填充SQL Server數據
- 14. 如何繪製填充輪廓,其中z軸是因子
- 15. 預填充離子數據庫2
- 16. 在SQL Server中填充
- 17. 只有x變量和填充因子的geom_bar中的標籤
- 18. Coredata數據庫預填充未填充
- 19. 填充組合框時的填充方法是在類庫
- 20. 填充子表
- 21. 試圖填充ASP GridView,因爲它的數據源被填充到服務器上
- 22. 從服務器填充AutoCompleteBox數據
- 23. 根據因子創建ID並用Stata填充
- 24. 修改MS SQL 2008 R2中所有表中主鍵的填充因子
- 25. 無法找到填充的原因 - CSS
- 26. 使用根據因素分佈的值填充NA值(因子值列)?
- 27. SQL Server CE和C#;填充從SQL Server CE數據庫
- 28. 數據結構的設計模式及其填充方法?
- 29. aspx vb.net checkboxlist從SQL服務器填充
- 30. 填充事實表SQL服務器
爲ALTER編寫腳本,查找 - 替換填充因子部分,執行更新的腳本 - ? – CompanyDroneFromSector7G
嗯,我發現了一些我認爲會起作用的東西 - 以防萬一任何未來的人都好奇 –