Ubuntu系统上Oracle数据库性能调优技巧
PARALLEL_MAX_SERVERS)与CPU核心数匹配。MEMORY_TARGET和MEMORY_MAX_TARGET参数自动分配SGA与PGA内存,简化配置。例如:ALTER SYSTEM SET MEMORY_TARGET=16G SCOPE=SPFILE;
ALTER SYSTEM SET MEMORY_MAX_TARGET=32G SCOPE=SPFILE;
修改后需重启数据库生效。DB_CACHE_SIZE(缓存数据块,提升读性能)、SHARED_POOL_SIZE(缓存SQL/PLSQL,减少硬解析);PGA中的PGA_AGGREGATE_TARGET(排序、哈希操作内存)。例如:ALTER SYSTEM SET DB_CACHE_SIZE=4G SCOPE=SPFILE;
ALTER SYSTEM SET SHARED_POOL_SIZE=2G SCOPE=SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=1G SCOPE=SPFILE;
vm.nr_hugepages),并在Oracle中配置USE_LARGE_PAGES=TRUE。WHERE、JOIN、ORDER BY的列创建索引(如主键、外键列)。例如:CREATE INDEX idx_emp_dept ON employees(department_id);
ALTER INDEX idx_name REBUILD),删除未使用的索引(通过DBA_UNUSED_COL_STATISTICS视图识别)。CREATE INDEX idx_emp_name_sal ON employees(name, salary)),避免回表操作,提升查询速度。EXPLAIN PLAN查看SQL执行计划,识别全表扫描、索引未使用等问题。例如:EXPLAIN PLAN FOR SELECT * FROM employees WHERE department_id=30;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
SELECT *(仅查询所需列),使用绑定变量(减少硬解析,降低CPU开销)。例如:SELECT name, salary FROM employees WHERE department_id=:dept_id;
PARTITION BY RANGE(sale_date)),减少查询扫描的数据量。例如:CREATE TABLE sales (sale_id NUMBER, sale_date DATE)
PARTITION BY RANGE (sale_date) (
PARTITION p2023 VALUES LESS THAN (TO_DATE('2024-01-01', 'YYYY-MM-DD')),
PARTITION p2024 VALUES LESS THAN (TO_DATE('2025-01-01', 'YYYY-MM-DD'))
);
INSERT、UPDATE)启用并行,提升处理速度。例如:ALTER TABLE sales PARALLEL (DEGREE 4);
SELECT /*+ PARALLEL(sales, 4) */ * FROM sales WHERE sale_date>TO_DATE('2024-01-01', 'YYYY-MM-DD');
CREATE TABLESPACE user_data DATAFILE '/u01/oradata/user_data.dbf' SIZE 10G;
CREATE TABLESPACE temp_data TEMPFILE '/u02/oradata/temp_data.dbf' SIZE 5G;
FILESYSTEMIO_OPTIONS=SETALL参数开启异步I/O,提升并发I/O性能。noatime(不更新访问时间)、nodiratime(不更新目录访问时间)减少磁盘写入。例如:sudo mount -o remount,noatime,nodiratime /u01/oradata
deadline,数据仓库用noop)。例如,修改sda磁盘的调度器:echo deadline | sudo tee /sys/block/sda/queue/scheduler
@?/rdbms/admin/awrrpt.sql
/etc/sysctl.conf文件,优化TCP、内存参数。例如:vm.swappiness=10 # 减少交换空间使用
net.core.somaxconn=1024 # 增加连接队列长度
fs.file-max=65536 # 增加最大文件描述符数
应用参数:sudo sysctl -p。cups打印服务、bluetooth蓝牙服务),减少系统资源消耗。