Sql Server大数据库的使用和查询:如何处理它们?

时间:2016-03-10 17:47:43

标签: sql-server database ssis sql-server-2014

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

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

服务器机器:windows server 2012,2.4 ghz,40 gb ram,SQL SERVER Standard。

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

一些执行后出现错误:

  • "内存不足"

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

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

  • 由于我没有SQL ENTERPRISE版本,因此无法对表进行分区。

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

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

谢谢!

弗朗西斯

1 个答案:

答案 0 :(得分:0)

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