问题标签 [sql-server-performance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
79 浏览

sql-server - 保存文件的通用机制的性能问题

我想创建一个通用机制来在我的应用程序和数据库中保存文件,为此我想出了创建两个表的想法,schema以便在任何数据库表中保存与任何行相关的文件:

并创建具有OneToOne关系的下表以将文件数据保存在单独的表中,以便FileInfo可以更快地执行查询表:

好吧,我不是数据库性能方面的专家,这就是为什么我想知道这种将所有表的所有文件保存在一个表中的设计是否会导致性能问题,这是一种不好的做法吗?

如果可以,您能否为我提供更好的解决方案?

提前致谢

0 投票
0 回答
155 浏览

sql-server - SQL Server中从多个数据库到一个数据库的数据迁移导致超时

在我的公司,我们正在从桌面应用程序转向在线应用程序。出于这个原因,我们正在将我们的数据从单个桌面数据库迁移到在线 SQL Server 数据库。在线数据库和桌面数据库的架构不同。这就是为什么我们必须编写一些 SQL 程序来将数据从桌面 db 迁移到在线。大约有 10 个存储过程来传输数据。表大约有 25 个。3-4 个表对于每个桌面数据库有大约 800K 到 900K 的数据。我们有大约 2000 个单独的数据库要传输。

我们的流程如下:

  • 所有 .bak 文件都将在一个文件夹中
  • 会有一个windows服务
  • 一次需要一个数据库,还原该数据库并使用这 10 个存储过程将数据从该数据库传输到在线。
  • 然后删除桌面数据库
  • 因此,该过程适用于所有数据库。

现在问题来了。在执行此过程时,任何随机存储过程都会超时。超时是绝对随机发生的。可能是它迁移了 5 个数据库的数据,并且在第 6 个加载数据时其中一个程序超时。另一个时间可能是第 10 个或第 12 个数据库。

为了克服这个问题,我们增加了 SQL 服务器内存,在每次数据库迁移后清除 DBCC 缓存。但它仍然会发生,尽管超时频率降低了。

另请注意,某些程序会对迁移的数据进行一些计算并加载另一个表。

在这种情况下,我真的在寻求帮助。我已尽力描述我的情况。有什么办法可以避免这个超时问题吗?

提前致谢。

0 投票
1 回答
170 浏览

sql-server - SQL Azure 中的 Active Directory 身份验证和延迟问题

我在尝试连接到 sql azure 并获取数据时尝试使用带密码的 Active Directory。我正在使用 C# 与 .Net 框架 4.6 进行连接。但问题是我在获取记录时观察到很多延迟(每次调用超过 2-3 秒)。我正在尝试使用 Rest Api 访问这些记录,并且必须使用后端连接到服务器。

问题是,这种延迟是预期的吗?与普通的 sql server 身份验证相比,使用基于 Active Directory 的身份验证是否有任何性能开销?

服务器处于 P3 定价层。

0 投票
0 回答
25 浏览

sql-server - On Premise CRM 2016 解决方案导入导致多个服务器错误和客户端性能缓慢

On Premise CRM 2016 解决方案导入导致多个服务器错误和客户端性能缓慢

通过解决方案导入到实时 CRM 服务器的多个解决方案更新原因:

  1. 前端 CRM 中的迟缓行为
  2. 事件日志中的 MSCRMAsyncService$Maintenance 错误
  3. 在事件日志中报告服务器 Windows Server 错误
  4. 事件日志中的应用程序错误错误
  5. 事件日志中的 MSCRMWebService 错误
  6. 事件日志中的 MSCRMPlatform 错误
  7. IE11 中长时间运行的脚本错误
  8. 在表单之间移动的无效用户授权错误

上述问题通过重新启动服务器得到修复。

这是间歇性问题,因为并非每次发布解决方案都会出现这种情况。

0 投票
1 回答
84 浏览

sql - 来自 SQL Server Management Studio 的令人困惑的性能建议

我正在努力提高我们的 SQL 性能。SQL Server Management Studio 给出了一个令我惊讶的建议。为了示例的缘故,我将简化表结构和 SSMS 给出的建议。

Person的表结构:

  • ID
  • 出生日期
  • 电子邮件

我有一个特定的查询,我显示了执行计划。然后我看到了 SSMS 给出的建议,这让我有点惊讶。建议添加两个具有以下签名的索引,这将分别提高 41% 和 53% 的性能:

这两个索引位于相同的列上。只有 INCLUDE 列不同。我从阅读索引中的理解是,第一个索引也包括第二个索引的数据。那么为什么 SSMS 推荐第二个索引以及第一个索引已经包含所需的数据呢?

0 投票
1 回答
64 浏览

sql-server - 同一表中不同列上的主键非聚集(复合键)和聚集索引?

我正在使用 SQL Server 2012,对于其中一个表,我看到它在不同列上创建了主键非聚集(复合键)和聚集索引?有人可以帮助我了解在这种情况下会发生什么吗?

  1. 这会降低 DML 操作的性能吗?如果是,如何测量?
  2. 在并发期间执行 DML 操作时,这会导致该表的锁定/阻塞/死锁吗?

注意:该表中有大量记录~1000万

0 投票
1 回答
138 浏览

sql-server - IIS 服务器和 Azure 服务器因 SQL CPU 和内存利用率高而挂起,无法进一步处理请求

我有一个托管在 IIS 端口上的服务,用于提交一些信息,当成千上万的用户同时使用移动应用程序调用它时,服务器会卡住并且无法响应请求。此时我在任务管理器中观察到 SQL 占用了很高的利用率和内存。70-75% CPU 和内存。由于这个原因,我们需要每天早上和晚上重新启动 SQL 服务器。(我知道这对性能和统计数据来说是个坏主意,但服务器挂了)

我使用 .NET 框架和 SQL Server 2012 制作了 API。

知道我能做些什么来处理这个问题吗?

IIS Worker 处理器映像

任务管理器图片

0 投票
2 回答
65 浏览

sql-server - 在表更新之前收集流运算符导致串行更新导致 SQL Server 2017 中长时间运行的查询

我有一个长时间运行的存储过程,其中包含很多语句。经过分析确定了花费最多时间的几个语句。这些语句都是更新语句。

查看执行计划,查询在几秒钟内并行扫描源表,然后将其传递给收集流操作,然后传递给

在此处输入图像描述

这有点类似于下面,我们看到索引创建语句的相同行为也会导致缓慢。

https://brentozar.com/archive/2019/01/why-do-some-indexes-create-faster-than-others/

表有 6000 万条记录,在我们进行大量数据加载、更新和删除时是一个堆。

读取源代码不是问题,因为它在几秒钟内完成,但连续发生的实际更新需要大部分时间。

0 投票
1 回答
85 浏览

sql - SQL中包含大量数据的现有表的分区

我有一个表,其中包含表中的 2 个 cr 记录。我正在尝试根据月份和年份进行分区。

我尝试创建此表的文件组,但在我的场景中,该表在预编码部分的许多地方都使用。有什么办法可以让我对这个表进行分区并在 BI 报告中使用它,这样预编程就不会产生影响。

对于版本: - 我有以下非常基本的查询,但需要 10 分钟才能运行。

这是执行计划 - https://www.brentozar.com/pastetheplan/?id=B1dy0ZQ6d

任何人都可以看到改进它的方法吗?让我知道一些示例数据/表结构是否有用。

E2E_TBL_LIQUIDITY_TRACKING_CFY_JUNE 有 899556 条记录 LQTFYOpeningStock 有 934878 条记录 E2E_TBL_CPL_SALES_MR_008 有 131491 条记录 E2E_TBL_MATERIAL_MASTER 有 4695 条记录 LocationNameView 有 477 条记录 E2e_Tbl_Customer_Master 有 20390 条记录 E2_Master 有 20390 条记录

以下是索引: -

0 投票
0 回答
385 浏览

database-performance - SQL Server 2019 慢查询性能问题

我们有一个具有以下规格的物理服务器(非虚拟):

  • 服务器型号:HPE ProLiant DL360 Gen8
  • CPU:2xE5-2696V2(2.5GHz/12核/30MB)(48逻辑核)
  • 内存:128GB
  • 存储:128GB SSD (OS) 4x900GB SAS (Raid Backup)

我刚刚在其 Windows Server 2019 操作系统上安装了 SQL Server 2019(企业版)。不幸的是,任何查询的性能都很慢,即使是从一个简单的表中进行简单的选择,执行时间也是我的开发系统的两倍。

我的开发系统规范是:

  • CPU:酷睿i7 8700K
  • 内存:32 GB
  • 硬盘:256 SSD
  • 操作系统:Windows 10

这是令人难以置信的结果(我知道)并且震惊了我与他们分享这个问题的每一位 IT 专家,但直到现在我还没有任何解决方案。

我考虑过这些事情:

  1. 服务器上的操作系统一点压力都没有,SQL Server只是已经安装好的软件

  2. 我已经监控了所有 CPU 活动并确定所有逻辑核心都在处理

  3. 所有索引都已重建并且统计信息已更新(尽管我之前提到过,我有两次执行时间来从仅涉及聚集索引的单个表中进行简单选择)

  4. 由于情况相同,我从我的开发系统中备份了数据库并直接在服务器上恢复,没有任何更改(我们的比较情况完全相似)

  5. 我检查了很多硬件参数,比如存储的读写速度……但我没有弄清楚当我得到这些结果时会发生什么。

我知道情况很复杂,可能会影响许多参数,但是有什么建议可能我错过了解决这个问题吗?谢谢你。真挚地