总体思路与前提
操作系统层优化
tuned-adm list、tuned-adm profile oracle-performancevm.swappiness=10(减少换页,避免抖动)fs.file-max=6815744、fs.aio-max-nr=1048576kernel.sem=250 32000 100 128net.ipv4.ip_local_port_range=9000 65500net.core.rmem_default=262144、net.core.rmem_max=4194304、net.core.wmem_default=262144、net.core.wmem_max=1048576echo never > /sys/kernel/mm/transparent_hugepage/enabled),避免影响数据库内存分配与性能稳定性。HugePages_Total ≈ SGA_TARGET / Hugepage_size;例如 SGA=16G、Hugepage 2M,目标约 8192。/etc/sysctl.conf:vm.nr_hugepages=<目标值>;重启或按需生效;用 grep Huge /proc/meminfo 验证。数据库层内存与并发
ALTER SYSTEM SET memory_target=12G SCOPE=SPFILE;(示例值,需小于物理内存并预留 OS 与 PGA)ALTER SYSTEM SET sga_target=8G SCOPE=SPFILE;、ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;memory_target 与 sga_target/pga_aggregate_target 冲突。ALTER SYSTEM SET log_buffer=64M SCOPE=SPFILE;(高并发/大事务可适当增大)ALTER SYSTEM SET processes=500 SCOPE=SPFILE;、ALTER SYSTEM SET sessions=1000 SCOPE=SPFILE;parallel_max_servers、parallel_degree_policy,避免并行泛滥导致资源争用。SQL 与存储结构优化
SELECT *,只查必要列;使用 绑定变量 减少硬解析;用 EXPLAIN PLAN 与 SQL Monitor 定位高成本操作。EXEC DBMS_STATS.GATHER_SCHEMA_STATS(ownname=>'SCHEMA_NAME', estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt=>'FOR ALL COLUMNS SIZE AUTO', cascade=>TRUE);监控与维护
SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(<DBID>, <INSTANCE_NUMBER>, <开始快照>, <结束快照>));