基于案例SQL优化第四课作业分享

一. 说说分区表的主要好处是什么,为什么会有这些好处。

1、分区表是多个段,普通表是一个段,统计信息可在一个分区段收集。也可以各分区并行收集,大幅缩小收集时间。

2、分区表可以单独维护,包括增、删、exchange、split等,与其它分区的数据锁不冲突,对业务影响小。

原因:访问路径减少,缩小操作范围,性能提升。分区表是多个段,普通表是一个段,统计信息可在一个分区段收集。

 

二. 说说全局临时表的主要好处是什么。

 1、自动清理数据,可定义会话级也可以定义事务级,会话级退出session时自动清理数据,事务级在事务提交或rollback时自动清理

2、会话级全局临时表,在不同session间独立,互相不受影响

3、产生的日志少,对临时表的DML操作,不会对数据变化生成重做日志。

 

三. 举例说明一下什么时候使用分区表性能比普通表还差。

 

有这样一种情况,选定的分区列没有选择好,SQL查询时要遍历全表扫描每个分区表,还不如普通表查询全表扫描一个大表快。

 

其它笔记:

全局临时表,不适合放有久数据

主外键中,外键是要建索引的,不然会出现锁表或表连接查询性能问题

日期型不要放进varchar,会产生性能问题

表及索引压缩,减少IO,同时会增加CPU开销,性能提升。通过BI产品压缩比较普遍

分区数过多,也是有问题的,分区表最重要的用途是清理数据

在哪一列上建分区?

分区表是多个段,普通表是一个段,统计信息可在一个分区段收集。

当前库中分区表的分区类型是啥?是否有子分区?分区总数多少?分区列是哪一列?各分区详情?该分区表多大?统计信息收集情况?

该分区表有索引吗?索引是什么类型?索引统计信息情况?在哪些列有索引?索引失效了吗?索引的大小?索引段的分配情况?

可在多列上建分区,与组合分区概念不同。

全局临时表有何优势?自动清理数据,不同session数据独立

全局索引特别容易失效,如果加上Update GLOBAL indexes后,索引不会失效,但是执行特别慢。

 

 

基于案例SQL优化第四课作业分享,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。