小编Som*_*Guy的帖子

为什么我不使用 SQL Server 选项“针对临时工作负载进行优化”?

我一直在阅读 Kimberly Tripp 撰写的一些关于 SQL Server 计划缓存的精彩文章,例如:http : //www.sqlskills.com/blogs/kimberly/plan-cache-and-optimizing-for-adhoc-workloads/

为什么甚至有“针对临时工作负载进行优化”的选项?这不应该一直开着吗?无论开发人员是否使用 ad-hoc SQL,为什么不在每个支持它的实例上启用此选项(SQL 2008+),从而减少缓存膨胀?

performance sql-server memory cache query-performance

50
推荐指数
4
解决办法
3万
查看次数

什么时候执行计划不显示在 sp_WhoIsActive 中?

我使用 Adam Machanic 的出色sp_WhoIsActive过程来查看活动并记录到表中以对长时间运行的查询进行故障排除。

为什么执行计划没有一直显示在结果中?大多数情况下,该query_plan值为 NULL。如果我查看结果中的SQL_TEXT列,我会看到带有参数但没有值的查询,如下所示:

(@P0 nvarchar(4000),@P1 nvarchar(4000))
select blah from foo where a = @P0 and b = @P1 
Run Code Online (Sandbox Code Playgroud)

执行计划未显示在此处时如何获取它们?他们为什么不显示?我必须使用 Profiler 或扩展事件吗?将虚拟值放入这些参数并运行包含实际执行计划的查询是否会生成与我记录时实际使用的计划相同的计划?

我已经与供应商确认他们正在使用 Hibernate 3.5。

performance sql-server stored-procedures execution-plan sp-whoisactive query-performance

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

SQL Server - 在 SAN 上分离数据、日志和 TempDB 文件

我有一个连接到 SAN 的 SQL Server。我们的新存储供应商建议所有 LUN 跨越整个磁盘阵列,即 RAID5。我通常会向 SAN 管理员请求 3 个单独的 LUN(数据、日志和 TempDB),但鉴于新供应商的建议,创建单独的 LUN 有什么意义吗?或者,如果所有内容都在一个 LUN 中,我会看到相同的性能,因为它无论如何都会跨越所有磁盘?

这里的文章很棒,但并没有完全解决我的确切情况:http : //www.brentozar.com/archive/2008/08/sql-server-on-a-san-dedicated-or-shared-drives/

performance sql-server storage san

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

在多个命名 SQL Server 实例上运行 SSIS 的最安全方法是什么?

我有一个 Active/Active SQL Server 2008 R2 集群。每个节点上有两个命名实例,没有默认实例。

我需要将 SSIS 包部署到不同的实例。为此,我需要修改 MsDtsSrvr.ini.xml 文件以添加实例名称,以便 BIDS 和 SSMS 可以看到它们。我将所有 4 个实例名称都放在那个 XML 文件中(在两个节点上)并在两个节点上重新启动了 SSIS。通过集成服务连接连接到 SSMS 中的任何实例时,我现在可以看到每个实例的文件夹。但是,单击另一个节点上的 2 个实例名称会导致登录失败,因为它们在当前节点上未处于活动状态。也许这只是一个不便,但我会遇到这个设置的任何问题吗?或者有没有更有意义的方法来做到这一点?

sql-server-2008 sql-server best-practices clustering ssis

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

如何为所有登录/用户/表/架构编写权限脚本

多年来,我使用了无数脚本和应用程序来生成 SQL Server 数据库的所有权限。我使用过付费和免费工具。我觉得没有一个似乎在每种情况下都是准确的。我只是在寻找一种方法来为给定的数据库生成所有权限,同时确信脚本是正确的并且能够在从另一个实例备份/恢复后使用。有没有人有他们有信心并经常使用的方法

sql-server permissions scripting

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

多实例 SQL Server 2008 R2 群集上的最大内存设置

  • SQL Server 2008 R2 多实例集群(在 VMware vSphere 5.1 上)
  • 2 个节点,每个节点运行 2 个实例(共 4 个实例)
  • 每个节点 16GB RAM。

实例在同一节点上的唯一时间是我修补另一个节点时。

Brent Ozar 的“最大服务器内存”建议是保留 Windows 4GB 或 10%,以较大者为准。

由于这是一个集群,我应该如何在每个节点上设置最大内存?我应该将每个服务器视为独立服务器吗?这将确保每个节点上的内存不会浪费。但是,在节点故障时,所有 4 个实例的最大内存总量将超过单个节点的系统内存。在我们恢复第二个节点之前,这会在时间范围内导致任何问题吗?是否需要降低 4 个实例的最大内存设置,直到辅助节点恢复?或者 SQL Server 足够聪明以继续工作(如有必要,使用页面文件)。

sql-server best-practices memory clustering configuration

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

对等连接重置:套接字写入错误

我们有一个开发 Java (JDBC) 应用程序的供应商说他们收到了错误

对等连接重置:套接字写入错误

他们坚持认为 SQL Server (SQL Server 2012) 出于某种原因强行断开了他们的应用程序服务器。我已经运行 Profiler 跟踪来收集注意力和用户错误消息事件,但没有发现任何帮助。我检查了环形缓冲区并且只有失败的登录 - 没有断开连接。

SELECT CAST(record AS XML) FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_CONNECTIVITY'
Run Code Online (Sandbox Code Playgroud)

Windows 日志没有显示任何有用的信息。这是我应该能够在 SQL Server 中跟踪的错误,还是纯粹是需要网络跟踪或其他什么的网络错误?有任何想法吗?

sql-server jdbc sql-server-2012 connectivity

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

SQL Server 数据库邮件 - 为什么我不能对 xp_sysmail_activate 运行执行?

SQL Server 2008 R2 标准 x64

我无法从这个 SQL Server 发送电子邮件(在许多配置几乎完全相同的 AFAIK 中)。我已经创建了邮件配置文件和帐户。但是,每当我尝试使用 sp_send_dbmail(使用我的帐户 - 在系统管理员角色中)或数据库邮件->“发送测试电子邮件”发送电子邮件时,都没有任何反应。sysmail_log 中没有任何内容。生成以下 SQL Server 错误:

 The activated proc '[dbo].[sp_sysmail_activate]' running on queue 'msdb.dbo.ExternalMailQueue' output the following:  'The EXECUTE permission was denied on the object 'xp_sysmail_activate', database 'mssqlsystemresource', schema 'sys'.'
Run Code Online (Sandbox Code Playgroud)

细节

  • msdb.dbo.sysmail_mailitems 有每封邮件的记录
  • 数据库邮件日志为空(msdb.dbo.sysmail_log)
  • msdb.dbo.sysmail_sentitems 为空
  • 我已经运行了 sysmail_stop_sp 和 sysmail_start_sp
  • “is_broker_enabled”在 msdb 中设置为“1”

当我是 sysadmin 角色的一部分时,执行权限如何被拒绝?关于可能发生什么的任何建议?

sql-server configuration database-mail

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

进程试图解锁不属于它的资源

SQL Server 2005 SP4 32 位

我有一个每晚运行的 DBCC CHECKDB 作业。昨晚,在工作开始后不久,我收到了以下错误。数据库未处于可疑模式,当我现在运行它时 CHECKDB 恢复干净。数据库是完全可访问的。我应该担心吗?我不想在这一点上回到备份。

 2013-04-02 02:10:55.53 spid56      Error: 1203, Severity: 20, State: 1.
 2013-04-02 02:10:55.53 spid56      Process ID 56 attempted to unlock a resource it
                                    does not own: PAGE: 34:1:388664. Retry the 
                                    transaction, because this error may be caused 
                                    by a timing condition. If the problem persists, 
                                    contact the database administrator.
 2013-04-02 02:10:55.58 spid56      Error: 3314, Severity: 17, State: 3.
 2013-04-02 02:10:55.58 spid56      During undoing of a logged operation in 
                                    database 'MY_DATABASE_NAME', …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server backup maintenance errors

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

SQL Server Data Tools for VS 2015 - 有人使用 SSIS 开发到多个版本吗?

根据此链接,https: //www.mssqltips.com/sqlservertip/4253/backwards-compatibility-in-sql-server-data-tools-for-integration-services/ 最新版本的 SQL Server Data Tools - “SSDT对于 Visual Studio 15" (16.5) 也与 SQL 2016 和旧版本兼容。在以前的软件化身中,无论它被称为“SQL Server Data Tools”、“SQL Server Data Tools - Business Intelligence”还是“Business Intelligence Development Studio”,我们在部署时似乎总是遇到版本不兼容的问题。

如果我没看错,我们可以卸载所有旧版本的工具,只需安装 SSDT 16.5 即可为 SQL 2012 及更高版本开发 SSIS 包。由于我在过去版本的工具中看到的许多问题,我对在此开发新项目犹豫不决。

是否有人使用 SSDT 16.5 成功将 SSIS 包部署到 SQL 2016 和旧版本?显然,仅在较新版本中支持的任务在旧版本中不起作用。

sql-server etl ssis visual-studio ssdt

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