小编Bee*_*ems的帖子

SQL Server:使用双数据库提高性能?

我们有一个 SQL 数据库,可以存储大约 3000 台 PC 的应用程序使用日志。这些 PC 每天将使用数据发送到 SQL 服务器大约 10-20 次。我们过去只存储最近 60 天的应用程序使用情况,但客户要求我们不再清除数据。现在我们有大约一年的数据(大约 6,000,000 行),SQL 数据库遇到了一些性能问题。请注意,这并不重要,但远远超过我们拥有的任何其他数据库。每小时都会添加大量记录(应用程序打开记录),并且最多在几个小时内该记录将在关联的应用程序关闭时更新一次。您可以通过 SQL 活动监视器看到这些更新需要相当长的时间才能完成。

UPDATE 查询很简单:

SELECT TOP 1 f_ID 
from tb_applicationusage 
WHERE f_application = 'xxxxxxx' AND 
      f_computername = 'xxxxxxxxx' AND 
      f_endtime IS NULL 
ORDER BY f_starttime DESC
Run Code Online (Sandbox Code Playgroud)

实际上,它为尚未关闭关联应用程序的特定机器查找最近匹配的应用程序启动。我想不出更有效的方式来运行查询,所以我正在考虑以下替代方案:

移动到两个数据库:

  1. 仅包含最近 24 小时记录的工作数据库
  2. 包含所有其他记录的最终数据库

我不是 SQL 专家,所以我可能忽略了这种方法的一些缺点。目标是让 SQL 代理作业每晚将完成的记录移动到最终数据库。然后,当客户想要运行他们的月度报告时,我可以让该报告仅查询最终数据库而不是工作数据库。在工作数据库中查询可能只有 10,000 条记录,而不是 6,000,000 条记录,它会更快地工作似乎是合乎逻辑的。但同样,这似乎很简单,我可能遗漏了一些明显的东西。

版本:Microsoft SQL Server 2008 R2

sql-server sql-server-2008-r2

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

标签 统计

sql-server ×1

sql-server-2008-r2 ×1