我们最近将许多实例升级到 2016 年。因此,来自sqlpackage.exe的 SELECT 语句在某些实例上超时。
经过一些测试,我发现通过更新执行计划中显示的数据库系统表的统计信息,SELECT 停止了超时。
update statistics sys.[sysclsobjs] with fullscan
update statistics sys.[syscolpars] with fullscan
update statistics sys.[sysidxstats] with fullscan
update statistics sys.[sysiscols] with fullscan
update statistics sys.[sysobjvalues] with fullscan
Run Code Online (Sandbox Code Playgroud)
无论如何,是否可以通过标准维护包、Ola Hallengren 的脚本或其他一些过程来仅更新系统表统计信息?
08/01 更新
以下是我升级后的步骤
关于 4199 跟踪标志KB974006
-- for the instance
/*
Turn on traceflag 4199 (my understanding of this traceflag is that it disables
optimizer hotfixes in 2016
*/
-- disable automatic numa
sp_configure 'automatic soft-NUMA disabled', 1
GO
-- For each …Run Code Online (Sandbox Code Playgroud) 我们在 SQL Server 2008 R2 标准版上有一个 30 GB 的数据库。昨天我们备份了数据库并将其恢复到一个不同的虚拟机,它的规格与之前的机器完全相同——唯一的例外是新虚拟机有更多的内存。
但是我们发现旧虚拟机的性能比这个新虚拟机好得多。我的问题是:
在这样的恢复之后,我们是否应该重新创建/刷新数据库中的所有索引?如果是这样,那么是否有一种好方法可以轻松刷新所有索引(而不是一次一个索引)。
是否还有我们遗漏的其他明显步骤 - 我们没有内部 DBA,因为我们在数据库方面所做的工作并不多。
昨天我们将一个 SQL Server 2005 数据库迁移到了 SQL Server 2012。我们做了一个完整备份并在新服务器上恢复了它。
现在的问题是 SQL Server 2012 上的数据库比使用 SQL Server 2005 的 Windows 2003 服务器慢得多。更令人担忧的是,完全相同的维护计划(在 SQL Server 2005 上运行需要 37 分钟)是现在需要 2 个多小时并使用 16GB 内存,并且tempdb正在填满C:驱动器上的空白空间。这是怎么回事?
两者的服务器规格相同:
维护计划包括以下步骤:
我们有一个生产 SQL Server 2005 服务器,我们在上面托管了 200 个数据库。
我们想在我们的新服务器上托管这些数据库。在新服务器上安装了 SQL Server 2005 并准备就绪。
我想知道迁移整个数据的最佳和最方便的方法包括:
总之,我希望在新服务器上的新实例上拥有与当前 SQL Server 2005 完全相同的副本。
如果你能指导我解决这个问题,我将不胜感激。
此致
我需要将一个 SQL Server 2000 数据库还原到 SQL Server 2016。有没有什么可能的方法可以做到这一点,而无需安装 SQL Server 2008 的完整副本,还原到 2008,更改兼容级别,然后将 2008 备份还原到 2016 ? 我知道这行得通,但我真的不想为了这个单一目的而安装 2008 R2,除非我别无选择。
将 SQL Server 2012 备份还原到 SQL Server 2014 实例并更新兼容性级别时,理想(或必要)的调用顺序是什么?
-- Update Statistics for all tables
EXEC sp_MSforEachtable 'Update Statistics ? with FULLSCAN';
-- Update page and row counts in catalogviews
DBCC UPDATEUSAGE('MY_DATABASE') ;
-- Change DB Compatibility level
EXEC sp_dbcmptlevel 'MY_DATABASE', '120';
Run Code Online (Sandbox Code Playgroud)
我不确定数据库兼容性级别是否会影响统计数据或简化服务器上的引擎。如果数据库兼容性级别影响统计信息,则应在更新统计信息之前完成。也不清楚是否仍然推荐 UPDATEUSAGE 以及是否也应该在更新统计信息之前。
我有一个运行 Windows Server 2000 的生产环境和一个使用 SQL Server 2012 的开发环境。我需要更新数据库并使用 .ASP 实现一些新功能。有没有办法导出2000的数据库,然后导入到2012?我能找到的只是这个关于将数据库转移到 2008 年的 MS 支持文档。
我的任务是“重建”一个数据库服务器,因为旧的正在消亡。为了减少新服务器的可能性,我们决定重建与旧服务器尽可能相似的服务器,因此,在 Windows Server 2003 之上的 SQL Server 2005 Enterprise。
现在,旧服务器的原始开发/维护人员已经走上了渡渡鸟的路(例如,他很久以前离开了公司,现在无处可寻)。因此,我们必须进行整体迁移。
更糟糕的是,旧服务器是一个大杂烩:数据库、混合用户凭据(SQL Server 身份验证和Windows 身份验证)、一群链接服务器和一群 SQL Server 代理作业。
那么,我该如何处理这项艰巨的任务呢?在我看来,我有以下半生不熟的计划:
对于上面的每一步,我可能都必须一个一个地完成:(
是否有更简单(例如,不那么乏味)的方法来进行迁移?