相关疑难解决方法(0)

SQL Server MAXDOP 设置算法

在设置新的 SQL Server 时,我使用以下代码来确定设置的良好起点MAXDOP

/* 
   This will recommend a MAXDOP setting appropriate for your machine's NUMA memory
   configuration.  You will need to evaluate this setting in a non-production 
   environment before moving it to production.

   MAXDOP can be configured using:  
   EXEC sp_configure 'max degree of parallelism',X;
   RECONFIGURE

   If this instance is hosting a Sharepoint database, you MUST specify MAXDOP=1 
   (URL wrapped for readability)
   http://blogs.msdn.com/b/rcormier/archive/2012/10/25/
   you-shall-configure-your-maxdop-when-using-sharepoint-2013.aspx

   Biztalk (all versions, including 2010): 
   MAXDOP = 1 is only required on the BizTalk …
Run Code Online (Sandbox Code Playgroud)

sql-server configuration maxdop

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

将 SQL Server 2000 数据库升级到 2008 R2 并启用新功能

我最近将 SQL Server 2000 数据库升级到 2008 R2。


我所做的是:

  1. 关闭旧机器上的 SQL Server 2000 (express) 服务,
  2. 将数据文件(mydatabase.mdfmydatabase.ldf)移动到新机器,
  3. 运行 SQL Server Management Studio 2008,
  4. 连接到本地数据库引擎,
  5. 将数据文件附加到数据库。
  6. 修改数据库兼容级别为SQL 2008(100)。

问题:我还应该做些什么来完成迁移?

我想要:

  1. 使用校验和和完整恢复模型等新功能,
  2. 使这个数据库与在 SQL 2008 R2 中创建的完全一样,
  3. 使该数据库完全兼容、正确并且非常适合新的 SQL 2008 R2 数据库引擎。

换句话说:我只想知道如何正确且完全地将旧的 SQL 2000 数据库转换为新的 2008 R2 数据库,保持冷静,一切都做得对,并对所有新功能感到满意。


我问这个问题是因为我在互联网上发现很多网站都说了很多不同的东西让我感到困惑:有人说需要重建索引,有人说要做其他事情......现在我什么都不知道,所以我想听听有经验的人的意见和清晰的分步说明。我在一家非常小的公司工作,我一个人,我不想把事情搞砸。


先生,您的回答给我留下了深刻的印象,我没想到这么多。


所以一些评论:

  1. 该数据库现已投入生产。正如我所说,它是使用 deattach-attach 方法升级的,正如我在第一篇文章中所描述的和 MSDN 上所述:http : //msdn.microsoft.com/en-us/library/ms189625.aspx 它必须快速完成,所以我被迫这样做。让我们忘记它有多么不合适,而专注于当前的情况。

  2. 用户/权限在这里不是问题 - 只有少数并且权限很简单。

  3. 使用数据库的应用程序兼容 SQL 2000 到 2012 年,所以这也不是问题。

  4. 数据库文件 (MDF) 不大 - 只有大约 1GB。


还有几个问题:

  1. 你推荐使用备份/恢复方法,但我按照上面写的做了,所以我现在会遇到什么问题吗?一切正常,没有任何问题。 …

migration sql-server-2000 sql-server-2008-r2

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

更新 sys.objects 的统计信息

我正在处理一个查询,将所有直接或间接依赖于任何级别的数据库对象提供给一个名为 的表dbo.tblborder,该表严重依赖。

但是,这个问题特别与此查询的查询计划有关,因为我在查询计划中看到警告(在不同的排序运算符中)两种类型的警告,一种与溢出到 tempDB 相关,另一种与转换相关的警告数据类型和基数估计。

查询和查询计划进一步向下,在图片之后。

问题

在处理系统对象时,如何找出需要更新统计信息的对象?

否则,如何摆脱查询计划上的这个警告?

关于数据类型转换,我可以做些什么来避免这种情况以及基数估计问题?

也许是一些跟踪标志?

它是一个 600GB 的数据库,我想找到特定表上的所有依赖项,仅第一级就显示了 325 个对象,但这不是我每天都会运行的查询。我对清除这些警告很感兴趣,但这不是生死攸关的问题。

信息

第 1 张关于 tempdb 溢出警告的图片:

tempdb 溢出警告图片

关于 tempdb 溢出警告的第二张图片:

在此处输入图片说明

第三个警告 - 与数据类型转换相关,可能会影响基数估计

在此处输入图片说明

;WITH Radhe AS (

            SELECT DISTINCT 
            s2.object_id, 
            Name=SCHEMA_NAME(S2.schema_id) + '.' + S2.Name, 
            ObjectType = S2.Type,
            DependsOn = s1.object_id,
            DependsOn_Name=SCHEMA_NAME(S1.schema_id) + '.' + S1.Name,  
            0 as Level

            FROM sys.sysdepends DP

            INNER JOIN sys.objects S1 
                    ON S1.object_id = DP.DepID

            INNER JOIN sys.objects S2 
                    ON S2.object_id = DP.ID

            WHERE S1.object_id = …
Run Code Online (Sandbox Code Playgroud)

sql-server statistics system-tables sql-server-2014 cardinality-estimates

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