数据库性能提升技巧 存储产品尤为重要

运维 数据库运维
通过访问了专攻数据分析、数据建模、数据仓储和商业智能(BI)的PenguinSoft咨询公司联合创始人Mark Whitehorn先生,他表示任何一个称职的顾问都会在提出数据仓库改变建议之前,先看看这个公司存在的问题。总体上说,存储产品的选择很关键,有6个技巧可以改进数据库性能。

很多公司都想要提高数据加载和查询处理性能。在访问了专攻数据分析、数据建模、数据仓储和商业智能(BI)的PenguinSoft咨询公司联合创始人Mark Whitehorn先生,他表示任何一个称职的顾问都会在提出数据仓库改变建议之前,先看看这个公司存在的问题。总体上说,存储产品的选择很关键,有6个技巧可以改进数据库性能。

1.在考虑性能优化之前,需要先找出现存的瓶颈。如果你的查询性能CPU负载比较高,那么买更快的磁盘就完全是浪费钱。

2.了解你的数据库引擎。当用户还不了解自己数据库输入和输出的时候,往往就要开始危及性能了。例如,我见过用户使用SQL的Insert语句加载数据,而不是用更高效的批量加载工具。

我也见过用户用delete * 来删空一个表。这与Drop和Create相比是非常慢的,甚至比Truncate还要慢很多。当然,也许你的数据库软件并不支持Truncate--这就是为什么你需要了解它是如何工作的。如果你还没有一个好的DBA,也许单单从性能优化的角度看就值得聘用一个。

3.就查询而言,考虑将数据做成MOLAP立方体结构(例如,多维在线分析处理)并事先做好聚集,这可以让查询性能有很大提升。虽然会占用更多的磁盘空间和数据处理时间,但在性能方面会有很大提升。

4.考虑使用固态硬盘。这对磁盘速度问题会有意想不到的成本节约。最近,我正在跟一个有35GB的OLAP Cube的客户一起工作,性能很慢,聚集时间和查询速度都很慢。我推荐他们试试SSD.果然,在测试工作台上就有了一台崭新的70GB SSD PC.

这台机器是配置合理,RDBMS安装在硬盘上, OLAP cube创建在SSD上。Cube聚集得更快了,查询性能的改进就更显着了。有些查询比相同级别的聚集快20倍。与性能的提高相比,SSD的成本是完全是微不足道的。

5.考虑在笔记本上做SSD。(我自己也这么做了,我现在正在用的这台笔记本上有250G),但这也是对磁盘集中的令人难以置信的应用。如果可能,在内存中执行抽取、转换和加载(ETL)处理。对于执行时间很长的ETL操作,可以用磁盘缓存(以防处理失败),缓存到SSD而不是硬盘。

6.为分析的目的,而不是事务的目的对分析结构做索引。听起来很显然,但是,我见过无数的关系型OLAP星型模式,其中的索引策略都是根据事务型系统的长期经验而做的,很少有是根据分析型系统的经验。

例如,默认情况下,许多关系型数据库引擎都会对表的主键做索引。这在事务型结构中很普及,许多查询都会用到这个索引--但是很少有人知道,在星型模式中,很少会用主键索引进行常规的单行查询。另一方面,维表中所有的分析列都很有可能被查询,也常常会用到索引。

【编者推荐】

  1. 何为实时数据库系统
  2. LDAP是什么?
  3. 一步一步实现ReportingServices2008匿名访问
  4. 浅谈关系型数据库中的压缩技术

 

责任编辑:艾婧 来源: eNet硅谷动力
相关推荐

2022-12-30 17:22:29

人工智能开发

2018-08-17 04:27:16

机器学习数学理论工程领域

2018-11-14 10:32:24

互联网

2020-09-29 09:46:16

网络安全

2021-12-28 14:10:41

开发技能代码

2020-07-25 20:01:45

CSS前端

2021-12-29 11:06:25

Java代码技巧

2013-03-29 09:28:41

2015-06-10 17:25:41

数据中心运维工作

2011-03-28 15:44:45

惠普数据库Oracle数据库

2016-01-27 13:31:00

数据中心

2021-04-30 07:33:35

效率提升技巧

2010-08-17 09:22:34

2020-11-10 08:38:43

数据库HugePages内存

2011-05-20 10:30:20

ORACLE数据库性能优化

2019-08-27 15:00:09

MySQL数据库存储

2009-09-25 18:36:58

Sun存储性能

2023-09-13 16:34:47

Java工具开发

2009-02-26 09:34:16

性能优化DB2数据库
点赞
收藏

51CTO技术栈公众号