我们有一个Web应用程序,出于政府pipe理的安全原因,要求每个客户拥有自己的数据库。 因此,我们有几千个小型数据库,它们都具有完全相同的架构(现在每个数据库在10MB到50MB之间,但不会超过〜400MB)
我们有一个程序,可以自动扫描每个数据库,并随着主副本发生变化而升级架构,效果很好。 但是,除夜间备份之外,我们没有任何脚本维护。
有什么我们应该运行的build议? 完整性检查,更新统计信息,重build索引? 无论我们运行什么,我们都必须确保我们能够轻松获得脚本的通过/失败,这样我们可以轻松地在第二天早上晚些时候报告调查失败的情况(因为我们不会观看脚本重复数千次)。
Powershell将成为你的朋友。 袖口:
$server = new-object "Microsoft.SqlServer.Management.Smo.Server" "your-server-name-here" foreach ($db in $server.Databases) { foreach ($table in $db.Tables) { foreach ($index in $table.Indexes) { $index.Rebuild() } } }
我会使用未经修改的脚本吗? 没有(一个,它只是盲目地重build实例上的每个数据库中的每个表,无论是否需要它)。 但是它显示了只要很less的代码就可以实现这个function。