我知道你可以设置一个默认的填充因子,但是我想在整个服务器上将现有的填充因子改回默认值。填充因子 - 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
嗯,我发现了一些我认为会起作用的东西 - 以防万一任何未来的人都好奇 –