如何提高数据库的性能?

Vai*_*ain 10 sql database performance sql-server-2005

我在公司里多次设计过数据库.为了提高数据库的性能,我只查找规范化和索引.

如果要求您提高数据库的性能,该数据库包含大约250个表和一些包含数百万条记录的表,那么您需要查找哪些不同的内容?

提前致谢.

ewe*_*nli 10

优化逻辑设计

逻辑级别是关于查询和表本身的结构.首先尝试最大化这个.目标是在逻辑级别访问尽可能少的数据.

  • 拥有最有效的SQL查询
  • 设计支持应用程序需求的逻辑模式(例如,列的类型等)
  • 设计权衡以支持某些用例比其他用例更好
  • 关系约束
  • 正常化

优化物理设计

物理层面处理非逻辑考虑,例如索引的类型,表的参数等.目标是优化始终是瓶颈的IO.调整每个表以满足其需要.可以在DBMS缓存中永久加载小表,具有低写入速率的表可以具有与具有高更新率的表不同的设置以占用更少的磁盘空间等.根据查询,可以使用不同的索引等.您可以非规范化数据透明地与物化视图等

  • 表格参数(分配大小等)
  • 索引(组合,类型等)
  • 系统范围的参数(缓存大小等)
  • 分区
  • 非规范化

首先尝试改进逻辑设计,然后是物理设计.(两者之间的界限是模糊的,所以我们可以争论我的分类).

优化维护

必须正确操作数据库才能保持尽可能高效.这包括一些可能对性能产生影响的主要措施,例如

  • 保持统计数据是最新的
  • 定期重新排序关键表
  • 磁盘维护
  • 所有系统的东西都有一个摇滚的服务器