一、硬件层面优化
二、文件系统与存储架构优化
noatime(禁用访问时间更新,减少元数据操作)、data=writeback(提升写入性能,适用于OLTP场景);调整块大小(如4K,匹配Oracle数据库块大小,减少I/O碎片)。三、操作系统内核参数调优
vm.swappiness=0:禁用交换分区,防止Oracle进程内存被交换到磁盘,提高内存使用效率(仅适用于内存充足的环境)。vm.dirty_background_ratio=10、vm.dirty_ratio=20:控制脏页面(未写入磁盘的缓存数据)的写回策略,平衡内存使用与I/O负载。vm.dirty_expire_centisecs=3000、vm.dirty_writeback_centisecs=500:设置脏页面写回的时间间隔,避免脏页面积累过多导致系统瓶颈。kernel.shmmax:设置为大于Oracle SGA大小的值(如SGA为8G,则设为8589934592),确保SGA能在一个共享内存段中运行,减少内存碎片。kernel.shmall:根据系统内存计算(如8G内存=810241024*1024/4096=2097152),保证共享内存总量足够。kernel.shmmni=4096:共享内存段最大数量,满足Oracle多进程需求。kernel.sem:设置为250 32000 100 128,控制并发访问(如会话、进程间通信)。fs.file-max=65536:系统最大文件句柄数,满足Oracle大量文件(数据文件、日志文件)的打开需求。四、Oracle数据库参数优化
MEMORY_TARGET),设置合理的总内存大小(如MEMORY_TARGET=16G、MEMORY_MAX_TARGET=32G),让Oracle自动分配SGA(共享池、缓冲区缓存)和PGA内存,简化管理。DB_CACHE_SIZE(数据缓冲区缓存,提升数据读取性能)、SHARED_POOL_SIZE(共享池,缓存SQL语句和PL/SQL代码,减少硬解析)。PGA_AGGREGATE_TARGET(如PGA_AGGREGATE_TARGET=8G),自动管理PGA内存(排序、哈希连接等操作),避免PGA内存不足导致的性能下降。DB_BLOCK_SIZE:根据应用场景选择(OLTP选8K,OLAP选16K或32K),匹配数据访问模式,提高I/O效率。LOG_BUFFER:增大日志缓冲区(如LOG_BUFFER=16M),减少日志写入磁盘的频率,提升事务提交性能。五、数据库设计与SQL优化
user_id、order_date)创建B-tree索引,避免全表扫描。WHERE UPPER(name) = 'JOHN'),防止索引失效;减少IS NULL、IS NOT NULL条件,降低索引使用率。ALTER INDEX idx_name REBUILD),消除碎片,提高索引访问速度。EXPLAIN PLAN分析执行计划,添加合适的索引。SELECT *改为SELECT id, name),降低数据传输量。:1代替具体值),减少硬解析,提高SQL执行效率。六、监控与持续调优
iostat监控磁盘I/O(如await响应时间、%util利用率)、vmstat监控内存与CPU(如free内存、cpu idle)、sar监控系统整体性能(如tps磁盘事务数),及时发现性能瓶颈。gzip)、更新统计信息(ANALYZE TABLE或DBMS_STATS包),确保数据库性能稳定。