SQL Server大型数据库使用和查询:如何处理它们



我在这个社区中阅读了一些关于大型数据库维护和最佳实践的文章和帖子。但是,我无法避免我的崩溃。

我需要管理一个新的数据库,其中最大的表大约有 3 亿条记录。

服务器机器:Windows Server 2012,2.4 GHz,40 GB RAM,SQL SERVER Standard。

我在 SSMS 14 中创建了数据库,通过 SSIS 包导入了 4 个不同表中的所有数据。数据库真的很大。即使是非常简单的查询也绝对需要很长时间才能执行。我需要在这些大表之间创建联接,以便获得最后一个表。视图只是没有解决(在后面列出的视图中选择数据时出错),并且连接总是在几个小时后失败。

执行一些后出现错误:

  • "记忆不足"

  • 在查询执行期间,日志文件肯定放大了太多(超过 200 GB),并且完全覆盖了整个服务器磁盘空间。 ->"日志

  • 尝试在表中为我用来连接的字段构建一些非聚集索引。但是尝试构建它们时出现了超时错误。

  • 我无法对表进行分区,因为我没有 SQL 企业版。

  • 现在,经过另一次尝试,我停止了一个过于耗时的查询,我的数据库自数小时以来一直处于"恢复"模式。我想我失去了它,我必须从头开始。这实际上是一个很好的机会,可以尝试更有效地构建它以使其可用。

鉴于这个故事,你们有什么好的做法可以建议或我应该遵循的路径才能成功启动加入查询吗?或者对我的数据库发生了什么有任何解释?
你有什么线索告诉我应该怎么做吗?我很迷茫...

谢谢!

弗朗切斯科

1-如果未在代码中使用事务,请通过使数据库简单来删除日志文件2-在查询中避免选择所有列3-避免使用子查询或函数4-在连接列中建立索引(最好是整数)5-尝试根据您的数据最小化列的大小,并且在没有实际需要的情况下不要使用TEXT或NTEXT。6-如果可以进行一些非规范化(基于连接的汇总表),它将提高性能并且不需要连接。

最新更新