ST数据库优化.pptx

数 据 库 优 化学习目标学习目标:能够看懂神通的执行计划了解执行计划的常用算子了解基础的执行计划的优劣了解基础的调优方法 系统配置优化数据存储优化SQL语句优化优化主要包括三个方面系统配置优化硬件设备操作系统设置合理的虚存足够的磁盘空间数据库参数配置CPU和IO查看CPU的利用率,正常情况下,CPU利用率被操作系统占用在25%到40%之间,应用程序占用60%到75%,如果操作系统占用的CPU达到50%以上,就是不正常的情况。尽量让神通数据库独占服务器通过配置参数充分利用服务器资源如果神通数据库CPU利用率较低,而IO较大。可能IO就是瓶颈,考虑增加独立的磁盘,重新做数据的分布上述判断前提是数据库进行过良好的调优,如果仍然无法解决问题,更换服务器判断硬件资源的限制创建数据库性能考虑创建数据库应该:将日志文件和数据库文件分别分布在不同的物理磁盘上创建一个独立表空间,其下数据文件最好在一个独立的磁盘上系统表空间最好位于一个独立的磁盘上临时表空间和数据表空间应位于不同的磁盘更新数据和非更新数据应位于不同的磁盘数据存储优化创建数据文件创建日志文件建表设置过小 会影响性能数据文件、日志文件建表垂直分区水平分区热点数据的内存驻留更新数据和非更新数据的填充属性常用数据和非常用数据的分离业务中并非所有的数据都是经常使用的,在数据库模式设计时就应该进行分离模式设计无法分离的非常用的属性,应使用垂直分区进行分离例如:lineitem表的l_comment属性热点数据的内存驻留应用中有的数据是访问频度非常高的,称为热点数据对热点数据使用普通的buffer替换策略是不合适的使用buffer_pool数据存储参数对热点数据应用特殊的替换策略更新数据和非更新数据的填充属性应用中有的数据对象是常被更新的,而有的数据对象几乎从不更新对非更新数据采用同样的填充存储属性是不合适的使用PCTFREE和FILL属性设置不同的填充存储属性合理的水平分区神通提供两级水平分区和Range、List、Hash三种水平分区策略,提供全局索引、局部索引和分区索引应根据数据特点按常用、非常用数据,更新、非更新数据进行有效的水平分区应根据应用查询特点、硬件配置选择合适的分区键、分区策略、分区数目和索引建表例子CREATE TABLE ORDERS ( O_ORDERKEY INTEGER NOT NULL, O_ORDERDATE DATE )nologgingtablespace tpchbuffer_pool keeppctfree 20OVERFLOW START 1partition by range(O_ORDERDATE)subpartition by hash(O_ORDERKEY)subpartitions 4(partition values less than (1996-1-1),partition values less than (1997-1-1),partition values less than (1998-1-1),partition values less than ( maxvalue) );输入:SQL语句SQL执行步骤语法解析语义分析数据字典查询优化数据文件查询执行日志文件输出:满足条件的数据SQL语句优化优化器的工作优化器的三个决定数据访问方法连接顺序连接方法作出正确决定的前提存在可用的数据访问方法正确的代价估计模型正确的统计信息优化器的选择体现在执行计划中SYSDBA@SYSDBA explain select * from test1 where a in ( select b from test2 where a=test1.b); QUERY PLAN Hash Join(Left Semi Join) (cost=212.80..754.02 rows=41 width=8) Hash Cond: ((outer.A = inner.B) AND (outer.B = inner.A)) - Seq Scan on TEST1 (cost=0.00..89.92 rows=8192 width=8) - Hash (cost=89.92..89.92 rows=8192 width=8) - Seq Scan on TEST2 (cost=0.00..89.92 rows=8192 width=8)(5 行)Explain用于查看执行计划,但不会执行SQL语句。优化器的执行计划如何查看执行计划使用explain命令:SYSDBA@SYSDBA explain analyze select * from test1 where a in ( select b from test2 where a=test1.b

文档评论(0)

1亿VIP精品文档

相关文档