Oracle DBMS_STATS.SET_TABLE_STATS 模拟大数据量进行 SQL 调试和优化
生产上有一张 200 万条的表,需要进行 SQL 优化;测试环境中的这张表,里面只有 10 万行的数据。不需要真正插入 190 万条的数据,可以通过DBMS_STATS.SET_TABLE_STATS 这个包进行表统计信息的设置,来模拟大数据量的场景。首先,对测试环境的这张表进行统计信息收集,以得到准确的统计信息BEGIN DBMS_STA...
Oracle 索引的优化
在以写为主的应用中,索引的维护需要消耗一定的 CPU 和 I/O 资源,不要创建没有必要的索引,防止冗余索引的出现。如何选择合适的字段来创建索引?1、选择那些经常出现在 WHERE 条件中的字段2、选择那些经常用于表连接的字段3、选择具有高选择性的字段。当一个字段中重复数据越少时,字段的选择性就越高。4、不要...
Oracle 11G 数据库重要的初始化参数设置
OPEN_CURSORS每个会话最大的游标数(活动的SQL语句),推荐设置成500。DB_FILES数据库能创建的最大物理文件数DB_BLOCK_SIZE设置数据块(存储在物理文件或被缓存到SGA中)的大小,对于在线交易系统通常设置为8192,对于数据仓库可设置为16K或32K。SGA_TARGET当数据库使用自动共享内存管理方式时,SGA各内存区域...
SQL条件中“is null”谓词导致全表扫描问题优化
正文: 前段时间针对相关SQL进行了优化,零散记录了下优化过程,这次整理出来与大家分享。若有描述不当或补充的地方请留言,谢谢!方法1:用固定值建复合索引优化 1)新建测试表 &...
数据库级调优
数据库级调优1. 数据库级调优1.1.修改数据库参数以sys用户登录,运行如下的命令:alter system set optimizer_index_cost_adj=10 scope=spfilealter system set optimizer_dynamic_sampling=5 scope=spfileoptimizer_index_cost_adj取值0-1000,缺省100 ;值越小oracle就越趋向使用索引optimizer_dynamic_sampli...