相关疑难解决方法(0)

如何更新数据库系统表的统计信息

我们最近将许多实例升级到 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)

statistics execution-plan sql-server-2016

6
推荐指数
1
解决办法
2696
查看次数

还原到其他服务器后的步骤

我们在 SQL Server 2008 R2 标准版上有一个 30 GB 的数据库。昨天我们备份了数据库并将其恢复到一个不同的虚拟机,它的规格与之前的机器完全相同——唯一的例外是新虚拟机有更多的内存。

但是我们发现旧虚拟机的性能比这个新虚拟机好得多。我的问题是:

  1. 在这样的恢复之后,我们是否应该重新创建/刷新数据库中的所有索引?如果是这样,那么是否有一种好方法可以轻松刷新所有索引(而不是一次一个索引)。

  2. 是否还有我们遗漏的其他明显步骤 - 我们没有内部 DBA,因为我们在数据库方面所做的工作并不多。

sql-server sql-server-2008-r2 restore

5
推荐指数
1
解决办法
8273
查看次数

从 SQL Server 2005 迁移到 SQL Server 2012 后的 SQL 性能问题

昨天我们将一个 SQL Server 2005 数据库迁移到了 SQL Server 2012。我们做了一个完整备份并在新服务器上恢复了它。

现在的问题是 SQL Server 2012 上的数据库比使用 SQL Server 2005 的 Windows 2003 服务器慢得多。更令人担忧的是,完全相同的维护计划(在 SQL Server 2005 上运行需要 37 分钟)是现在需要 2 个多小时并使用 16GB 内存,并且tempdb正在填满C:驱动器上的空白空间。这是怎么回事?

两者的服务器规格相同:

  • X5650 @ 2.67GHz (4procs)
  • 16 GB 内存

维护计划包括以下步骤:

  • 步骤 1:检查数据库完整性
  • 第 2 步:重新组织索引
  • 第 3 步:重建索引
  • 第 4 步:收缩数据库

sql-server-2005 sql-server sql-server-2012

5
推荐指数
2
解决办法
1万
查看次数

将所有数据库从一个 SQL Server 2005 迁移到另一个

我们有一个生产 SQL Server 2005 服务器,我们在上面托管了 200 个数据库。

我们想在我们的新服务器上托管这些数据库。在新服务器上安装了 SQL Server 2005 并准备就绪。

我想知道迁移整个数据的最佳和最方便的方法包括:

  • 安全和许可
  • 用户和会员
  • 所有的数据库和..

总之,我希望在新服务器上的新实例上拥有与当前 SQL Server 2005 完全相同的副本。

如果你能指导我解决这个问题,我将不胜感激。

此致

sql-server backup migration

5
推荐指数
1
解决办法
1万
查看次数

将 SQL Server 2000 数据库转换为 SQL Server 2016

我需要将一个 SQL Server 2000 数据库还原到 SQL Server 2016。有没有什么可能的方法可以做到这一点,而无需安装 SQL Server 2008 的完整副本,还原到 2008,更改兼容级别,然后将 2008 备份还原到 2016 ? 我知道这行得通,但我真的不想为了这个单一目的而安装 2008 R2,除非我别无选择。

sql-server

5
推荐指数
2
解决办法
3万
查看次数

还原到较新的 SQL Server 后的统计维护

将 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 以及是否也应该在更新统计信息之前。

sql-server sql-server-2012 sql-server-2014

4
推荐指数
1
解决办法
602
查看次数

将 SQL Server 2000 数据库导出到 Server 2012

我有一个运行 Windows Server 2000 的生产环境和一个使用 SQL Server 2012 的开发环境。我需要更新数据库并使用 .ASP 实现一些新功能。有没有办法导出2000的数据库,然后导入到2012?我能找到的只是这个关于将数据库转移到 2008 年的 MS 支持文档。

http://support.microsoft.com/kb/962355

sql-server export sql-server-2012

1
推荐指数
1
解决办法
1万
查看次数

将 SQL Server 2005 完全迁移到新服务器的过程

我的任务是“重建”一个数据库服务器,因为旧的正在消亡。为了减少新服务器的可能性,我们决定重建与旧服务器尽可能相似的服务器,因此,在 Windows Server 2003 之上的 SQL Server 2005 Enterprise。

现在,旧服务器的原始开发/维护人员已经走上了渡渡鸟的路(例如,他很久以前离开了公司,现在无处可寻)。因此,我们必须进行整体迁移。

更糟糕的是,旧服务器是一个大杂烩:数据库、混合用户凭据(SQL Server 身份验证Windows 身份验证)、一群链接服务器和一群 SQL Server 代理作业。

那么,我该如何处理这项艰巨的任务呢?在我看来,我有以下半生不熟的计划:

  1. 使用复制数据库向导复制数据库
  2. 使用 Script > CREATE To 复制用户
  3. 重新创建所有链接服务器
  4. 使用 Script > CREATE To 复制作业

对于上面的每一步,我可能都必须一个一个地完成:(

是否有更简单(例如,不那么乏味)的方法来进行迁移?

sql-server-2005 migration

1
推荐指数
1
解决办法
1665
查看次数