Oracle 21日:构建一个更强劲的数据库体系
Oracle作为全球领先的企业级数据库软件提供商,一直以来都致力于打造一个更强劲、更高效、更安全的数据库体系。为了实现这一目标,Oracle持续不断地推出各种新功能和产品,以适应不断变化的市场需求并提升用户体验。
近日,Oracle宣布推出了两项新功能:自动数据库诊断管理(ADDM)和自动SQL调整工具(SQL Tuning Advisor),这些功能将进一步提升Oracle数据库的性能、可靠性和安全性。
自动数据库诊断管理(ADDM)
ADDM是Oracle数据库自带的一项工具,可以自动分析数据库性能问题,提供详细的诊断报告和相应的解决方案。新的ADDM增加了一些新的特性,包括“以源代码级别诊断升级”、“启动时与非启动时诊断”等,并提供更多的诊断指标和建议。这些新特性将使ADDM更加智能、全面和易于使用,让数据库管理员更好地理解和优化数据库性能。此外,ADDM还支持与Oracle自动储存管理器(ASM)和Oracle Real Application Cluster(RAC)等组件集成,提供更全面的性能分析和管理。
自动SQL调整工具(SQL Tuning Advisor)
SQL Tuning Advisor是Oracle数据库的一个重要组件,可以自动优化SQL查询语句,提升查询效率。新的SQL Tuning Advisor版别升级了调整算法和优化策略,不仅对传统的基于成本的优化方法进行了改进,还支持新的基于机器学习的自适应优化方法。这些改进将使SQL Tuning Advisor更加准确、高效和智能,让开发者和DBA轻松优化SQL语句,节省时间和开支。
总结
Oracle继续加强其在企业级数据库领域的领先地位,通过不断推进产品和技术的创新,提升用户的生产效率和企业竞争力。随着数字化转型的不断深入,企业需要更加可靠、高效和安全的数据库系统来支持业务,而Oracle正是满足这些需求的不二选择。未来,Oracle将继续探索新的技术和业务领域,为客户提供更加卓越的数据库体系。
代码示例:
SQL Tuning Advisor使用示例:
–定义SQL语句
SELECT *
FROM employees
WHERE hire_date > ’01-JAN-2017′
ORDER BY department_id;
–运行SQL Tuning Advisor
DECLARE
task_name VARCHAR2(1000);
BEGIN
task_name := dbms_sqltune.create_tuning_task(
sql_text => ‘SELECT *
FROM employees
WHERE hire_date > ”01-JAN-2017”
ORDER BY department_id’,
time_limit => 3600,
task_name => ‘tune_sql_task’);
dbms_sqltune.execute_tuning_task(task_name);
END;
/
–获取优化建议
SELECT dbms_sqltune.report_tuning_task(‘tune_sql_task’) AS recommendations
FROM dual;
–输出优化建议
Recommendation
——————————————————
GENERAL INFORMATION SECTION
——————————————————————————-
Tuning Task Name : tune_sql_task
Tuning Task Owner : HR
Tuning Task ID : 484
Workload Type : Single SQL Statement
Execution Count : 0
Current Execution Type : Tuning Task
Scope : COMPREHENSIVE
Time Limit(seconds) : 3600
Completion Status : COMPLETED
Started at : 08/20/19 02:12:07 PM
Completed at : 08/20/19 02:12:27 PM
——————————————————————————-
Schema Name : HR
SQL ID : 5wu5f5c5yz5g5
SQL Text : SELECT *
FROM employees
WHERE hire_date > ’01-JAN-2017′
ORDER BY department_id
——————————————————————————-
….
优化建议:
1. 增加一个索引:CREATE INDEX idx_hire_date ON employees (hire_date);
–应用优化建议
EXEC DBMS_SQLTUNE.ACCEPT_SQL_PROFILE(task_name);