将 sql server 数据库设为只读的好处?

Jok*_*ker 8 sql-server

我正在使用一个报告数据库,它实际上是一个只读数据库。它是创建的数据,并在此数据库上生成和查看动态报告。

我正在考虑将此数据库设为只读。

关于只读数据库,我想问的一些问题是

  1. 只有数据是只读的吗?我们还能在这个数据库上创建索引或视图吗?
  2. 使用只读数据库有哪些性能优势?例如使用共享锁的 SELECT 查询等...
  3. 使用只读数据库有什么缺点吗?
  4. 在使用只读数据库时,是否有任何最佳实践可以遵循?

Mar*_*ith 17

  1. 当数据库为只读时,您无法更改架构,但您可以将所有用户表放在一个新文件组中并将其标记为只读。
  2. 您可以期待因没有锁定而获得适度的性能优势
  3. 在 2012 年之前的 SQL Server 版本上,无法在只读数据库上自动创建或更新统计信息。
  4. 在使其只读之前,您最好删除所有逻辑碎片并尽可能提高页面密度。任何非默认FILL_FACTOR设置在只读环境中都无济于事。此外,SELECT如果版本 < 2012,则创建/更新预计可用于查询的任何统计信息。


Mar*_*ith 9

  1. 整个数据库是只读的,因此您无法添加索引或视图。
  2. 不需要锁定,因此除了共享数据库锁之外的任何查询都不需要锁定。显然意味着也不会发生阻塞。
  3. 不是这样没有。
  4. 没有我可以建议的。