2010-09-08 62 views
2

我有一些只读数据库alter database [ReferenceData] set READ_ONLY,我们的应用程序正在使用它,并且想知道我可以调整哪些类型以获得最佳性能?SQL Server中只读数据库和索引碎片

到目前为止,我想出了以下目标:在索引中来100%的填充因子

  • 部队填充
  • 指数fragementation小于10%
  • 如果空间不是问题看看DMV并添加尽可能多的INCLUDED列

这些是否有意义?有更多的事情我应该调整最大效率?

我在Windows上运行SQL Server 2008 2008

回答

1

这听起来有种明显的,但你不直接说,你已经在你的问题做了,所以我会提到它:

  1. 您确定所有正确的索引 都已准备好吗?您可以针对数据库运行 profiler/DTA以查看 是否有可能通过创建新的 索引来改进 的任何区域。
  2. 你有没有性能调整 使用只读数据库的查询? 如果您的问题写得不好, 查询时,世界上的所有索引都不会 。
+0

是的,关于正确编写的代码和索引的选择是正确的,但是我的问题更具体地涉及数据库是只读还是读写数据库时可以做什么。 – Mouffette 2010-09-08 18:23:38

0
ALTER DATABASE MyDatabase 
SET READ_ONLY 

将设置一个数据库到不可修改的状态。据推测,这里有一些优化,但我不确定。

您还可以将默认事务级别设置为READ UNCOMMITTED,以获得每个会话的最大读取性能。据推测,如果你将数据库设置为只读模式,这已经发生了。

编辑:跑遍this article关于你应该如何准备一个数据库为只读。

+0

我不知道,但我确定当它的只读数据库引擎知道它可以读取而无需锁定。我的数据库现在只读了多年(每月更新除外),我只是想弄清楚可以做些什么来保持最佳状态。 – Mouffette 2010-09-08 18:29:40

+0

感谢您的链接。这篇文章提到提到的性能优势不需要锁定,额外的索引没有影响,第三,不知道为什么这是性能相关的,但可以在数据库联机时复制数据和日志文件 – Mouffette 2010-09-08 18:33:11