小编D-K*_*D-K的帖子

数据库“管理员”是否应该能够深入研究运行时查询性能问题?

我承认每个人的经验和能力都是不同的。话虽如此,我想避免为 DBA 通过行动设定过高(或过低)的期望;似乎是“管理员”。

鉴于:

  • 我是一名深入研究 SQL Server 故障排除和性能问题的开发人员。晚上我拿着一桶爆米花看 Brent Ozar 的视频。
  • 一个有多个部门的公司,这个部门有大约 100 名团队成员
  • 许多客户的数据库有数百万行 ETL
  • 一个小型 DBA 团队,可以处理这些相同的客户。处理 HAG 问题、备份、恢复、为新客户或升级客户创建新部署。

我不是试图证明我自己的观点是正确的。我想调整我的意见或公司其他人的意见。

题:

鉴于上述情况,是否应该期望 DBA 只是一个“管理员”?这是你经常看到的吗?


我进入这部肥皂剧(请参阅我最近的其他问题)时,期望 DBA“有望”深入研究。我开始相信我误解了,我倾向于 DBA - 成为“管理员”。

我欢迎其他人的经验,也许还可以提供关于完善这个问题的建议。

sql-server career

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

生产环境中是否使用了 OPTION (RECOMPILE)?

是否OPTION (RECOMPILE)用于生产?

这个选项似乎受到了很多负面报道。值得吗?

我有一个 DBA,到目前为止,他不喜欢OPTION (RECOMPILE)Report ETL ssis 代理查询的核心思想。这些查询(据我所知)按计划的时间间隔按顺序执行。

回溯历史:

  • SQL Server 2016
  • 通过 ssis 代理运行时导致聚集索引扫描的 ETL 查询。这些查询需要几分钟才能完成并造成严重影响。
  • 通过本地存储过程运行的相同查询和参数在不到一秒的时间内执行。

等等,你确定 OPTION (RECOMPILE) 是答案吗?

  • 未知。
  • 但是在我尝试之前,我需要知道这是否是一个非常糟糕的主意。

我所知道的风险:

因此,鉴于上述情况 - 该选项是否在现实世界中实际使用?我推荐(并测试)它作为生产环境的一个选项是否可以接受?


我被要求提供更多细节。我提到我确实有其他与此主题相关的帖子。让我提供更多信息:

  • 根本问题是来自应用服务器的查询花费的时间超过 60 秒。通常这些查询需要 4 到 10 秒。经过很多痛苦,我确定超时与 ETL 查询一致。15 个查询中有 4 个是具体的。
  • 在应用程序服务器中发现了问题的根源。具体来说,隔离级别设置serializable在休眠层内;我了解到,这对于大批量生产环境来说并不是最佳选择。

让我分享其他问题:

SQL Server - 我可以手术删除一个错误的缓存查询计划还是我追求错误的想法?

为什么通过 SSIS 在 ETL 中查询很慢,但通过本地存储过程查询很快?

sql-server ssis hibernate sql-server-2016 performance-tuning

6
推荐指数
3
解决办法
1948
查看次数

“最大并行度”= 1 的服务器范围设置是否会导致 Brent Ozar 的 sp_BlitzCache 将执行计划标记为“强制序列化”?

我正在使用 Brent Ozar 的 sp_BlitzCache 存储过程,并试图确定它报告的原因:

“您计划中的某些内容正在强制进行串行查询。如果这不是故意的,则需要进一步调查。”

经过调查,我发现服务器配置已设置:

'Max Degree of Parallelism = 1' 
Run Code Online (Sandbox Code Playgroud)

(这是我要正确配置的清单。这是无知的日子。)

这是否是 Brent 报告强制序列化的原因?

在此处输入图片说明

sql-server parallelism sql-server-2016 sp-blitz sp-blitzcache

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

PostgreSQL 语句中的 KEY SHARE OF 是什么意思?

给定以下 SQL,“ONLY”、“OPERATOR(pg_catalog.=)”和“FOR KEY SHARE”有什么作用?

SELECT 1 
FROM ONLY "public"."acmeinstanceinfo" x 
WHERE "widgetid" OPERATOR(pg_catalog.=) $1 
FOR KEY SHARE OF x
Run Code Online (Sandbox Code Playgroud)

我对 Microsoft SQL 服务器有相当多的经验,但对 PostgreSQL 的经验为零。对这个查询正在做什么的任何见解都会很棒。

postgresql amazon-rds

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

您能否在 Always ON 群集设置中将恢复模式从完全模式切换为简单模式?

我需要帮助了解我的选择。鉴于:

  • 由 DBA 维护的 SQL 服务器集群设置。
  • 系统尚未投入生产(未交付给客户)。
  • 最初的大量数据推送,几天没有中断
  • 我可以随时停止和开始推送数据并更改数据库。基本上我可以停止所有输入。

我建议我们的 DBA 切换到简单模式,因为我们在活动监视器中看到一堆处于等待状态的查询,这最终会导致应用服务器出错。

我以前从未遇到过这个问题,在消除过程中,我看到我们处于完全恢复模式而不是简单模式。

我要求我们从 FULL 切换到 SIMPLE,这是我得到的答复。是否还有其他选项可能是 DBA 不知道的?

我能提供什么帮助?

“我们无法在 SQL 中使用 AlwaysOn 切换到简单。”

我可以在初始加载阶段关闭 AlwaysOn 还是我运气不好?

- - 添加 - - 在此处输入图片说明

sql-server sql-server-2019

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