DWS最佳实践(三)DWS数据库日常运维操作
1. Analyze(对性能影响较大)
在进行数据查询的时候,经常会看到一些提示:
LOG: Statistics in some tables or columns({tableName and columnName}) are not collected. HINT: Do analyze for them in order to generate optimized plan.
它说明当前数据库对该表的统计信息不是最新的,在进行查询优化的时候,可能选择的不是最优方式,比如join顺序,join方式选择,是否使用索引等方面,直接影响到数据查询的性能。
建议定期对这些表做analyze。
(1)针对全库做analyze,在客户端输入下面的SQL命令:
analyze;
(2) 针对某个表做analyze:
analyze {table_name};
注:暂时还不支持针对某个schema做整体analyze,如果需要的话,需要手动对某个schema下的表做analyze;
DWS 1.5.0版本会自动打开analyze,升级之后就无需定期做analyze。可以登录数据库后执行如下命令查看:
show autoanalyze;
值为on,表示系统会自动analyze。
Analyze官网资料链接
https://support.huaweicloud.com/devg-dws/dws_04_0948.html
2. Vacuum
在数据库使用过程中,如果长期进行大量数据更新或者删除操作,会导致数据库内部存在很多碎片文件,降低查询效率,vacuum命令能够进行碎片整理,释放磁盘空间,并提升查询效率。
建议每个月执行1次或2次Vacuum操作,根据数据更新速度特定,如果比较频繁,可以提升频率。
建议在业务空闲的时候执行vacuum,该操作会造成短时间内IO负载提升。
Vacuum full命令会对该表添加排它锁,会导致短时间内该表无法访问。
(1)登陆数据库,执行下面命令,对全库做vacuum:
vacuum full;
(2)对某张表做vacuum:
vacuum full {table_name} ;
vacuum官网资料链接
https://support.huaweicloud.com/devg-dws/dws_04_1022.html
- 点赞
- 收藏
- 关注作者
评论(0)