小编Rea*_*ces的帖子

设置 maxdop 1 与设置高并行度阈值

我正在研究并行设置的可能边缘情况。

我长期以来一直相信maxdop 1是 Microsoft Dynamics CRM 数据库的可行选项。由于数据库的本质是严格的 OLTP,并且并行性对 CRM 实例几乎没有好处,因此我始终将 CRM 数据库设置为maxdop 1.

但是,我现在有一个数据库实例,它具有:

  • Microsoft Dynamics CRM 数据库
  • 主要用于 OLAP 目的的 ETL 数据库

我询问了我们的业务合作伙伴,他们对性能重要性的看法如下:

  1. CRM 必须快速,期间
  2. ETL 导入不应受到限制,但应排在 CRM 性能之后

因此,我倾向于牺牲 OLAP 数据库的并行性,并设置maxdop 1为最大限度地使 CRM 受益。
然而,可能存在一些中间立场。

如果我将 设置cost threshold for parallelism为一个数字,排除 CRM 抛出的所有内容,但根据我的查询计划可能会抓取一些 OLAP 事务,对 CRM 会有任何不利影响吗?

如果有的话,保持阈值如此之高(几乎从未达到)的影响是什么,与设置相比maxdop 1,我是否会在计算查询计划时让 SQL Server 考虑阈值而产生一些隐藏成本?

performance parallelism sql-server-2012 microsoft-dynamics

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

为什么它是截断表,而不是简单地截断?

在审查我们的一些代码时,一位同事认为,TRUNCATE TABLETRUNCATE.

谷歌搜索这个,我确实找不到TABLE需要该部分的具体原因。
我错过了什么?TABLEin 有TRUNCATE TABLE什么历史原因吗?

sql-server syntax truncate

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

设置 READ_Write 的含义

我希望更新READ_ONLY数据库上的几个用户。
由于数据库在全球范围内 24/7 全天候使用,并且维护窗口刚刚过去,我想在活动量低的时刻执行此操作(以便能够遵守截止日期)。

我目前正在考虑使用:

USE MASTER
GO
ALTER DATABASE SQL SET READ_WRITE
GO
USE SQL
GO
EXEC sp_addrolemember N'db_datareader', N'USER'
GO
USE MASTER
GO
ALTER DATABASE SQL SET READ_ONLY
GO
Run Code Online (Sandbox Code Playgroud)

但是我想:

  1. 保证这不会无限期地挂起
  2. 确保在此操作期间不能将任何内容写入数据库

由于我无法将这些命令放入事务中,而且我在 DEV 或 STG 环境中没有方便的应用程序服务器来预先测试更改,是否有任何有关更改read_only单个操作状态的文档?(我确实测试了 T-SQL 语句,并且它们有效)

另外,由于这需要对数据库进行排他锁,我什至有可能通过我的语句吗?

我倾向于只是提出这将不得不等到下一个维护窗口期间。但我希望这里有人能证明我错了。

sql-server t-sql sql-server-2012 locking read-only-database

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

将数据库从 SQL Server 2005 升级到 2012 发现语法错误

我最近从 SQL Server 2005 升级到 2012。但是在验证过程中,发现了一个错误。

某个触发器的编码如下:

CREATE TRIGGER [dbo].[trigger] on [dbo].[foo]
FOR UPDATE, UPDATE
AS
    UPDATE foobar
    SET datetime = GetDate()
    FROM bar
    WHERE foobar.id = bar.id
GO
Run Code Online (Sandbox Code Playgroud)

我可以在 SQL Server 2005 上安全地执行这个(奇怪的)。

但是,在 SQL Server 2012 上,它会引发(我所期望的)语法错误。

语法错误:触发器声明中操作“UPDATE”的重复规范。

为什么这不会在 SQL Server 2005 上引发语法错误?我在这方面的 google-fu 失败了。

为什么这似乎适用于 SQL Server 2005?

trigger sql-server-2005 syntax sql-server-2012

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