2009-06-28 24 views
0

作为我在公司担任的角色的一部分,我被迫成为数据库的DBA。我们的某些表的行数已接近1亿,并且我知道如何执行SQL Server的许多事情(如连接)只是在这个级别的数据中崩溃。我剩下几个选项有关管理大型SQL Server数据库的信息来源?

1)出去找一个有经验的管理VLDB的DBA。这将花费我们一分钱,并以牺牲我们需要完成的其他工作为代价。我不是一个很大的粉丝。

2)我们的大部分数据都是用于分析的历史数据。我可以简单地创建数据库模式的副本,并从头开始,对数据进行搁置,直到我找到解决问题的正确方法(这是我目前的“最佳”解决方案)。

3)联系开发人员社区,了解我是否可以充分了解大型数据库,以便让我们度过难关,直到实现解决方案#1。

任何人都可以提供的帮助,或任何书籍,你可以推荐将不胜感激。

+0

你也应该在ServerFault.com上提问这个问题。 – 2009-06-28 23:29:14

回答

1

这里有一些想法,但他们都不是快速修复:

  1. 制定在大表的 数据的归档策略。创建 与 现有交易表格格式相似的表格和 定期将数据复制到 表格中。如果你可以用 将数据从 重新打包到tx系统中,那很好。

  2. 开发一个关系型数据仓库 存储大型数据集, 完整的星型模式 由事实表和 尺寸。对于 这种方法的介绍,没有比Ralph Kimball的 Data Warehouse Toolkit更好的 书(恕我直言)。

  3. 有关人士分析,可以考虑使用MS 分析服务 预汇总,这些数据的快速查询 。

  4. 当然,您也可以在 现有数据库中查看 您的索引策略。请注意0​​的任何更改,因为您可以添加索引 ,这样可以提高插入成本和交易成本 性能的查询成本。

  5. 您还可以在SQL Server中研究 partitioning

  6. 不要觉得不好带来一个DBA合同的基础上,以帮助...

对我来说,最好的办法是,开始调查这一数据移出事务的系统如果不需要日常使用。

当然,你将需要选择一些新技能来处理这些数据量。无论您决定做什么,先做好备份!

您应该做的另一件事是确保您的I/O正在尽可能多的主轴上正确传播。您的数据文件,日志文件和sql server临时数据库数据文件应该全部位于单独的驱动器上,并且数据库系统很大。

+0

谢谢,这正是我所希望的跳跃点。 – 2009-06-29 11:34:03

0

如果你能找到一个好的DBA,他们的黄金价值是值得的。他们专注于做你正在描述的事情。如果这是一次性问题,也许你可以转包一个。

我相信微软提供了类似的服务。你可能想问。

0

你会想在那里得到一个DBA,至少在合同到性能调整数据库。

加入1亿条记录表不应该使数据库服务器瘫痪。我们公司的客户在我们的系统上每分钟执行数百次(可能是数千次)。