所谓统计数据,前述文中也提到过,它们是数据库优化器赖以产生SQL语句最优执行计划的依据。以这些统计数据为基础,优化器通过内置的模型、算法等,计算出全部或候选执行计划的成本(Cost),通过比较每个执行计划的成本,选出成本最低的执行计划,也就得到了SQL语句打算采用的执行计划,最终为节省系统资源消耗奠定了稳定、可靠的基础,优化器是数据库系统中最重要、最核心的组件之一。这里,我们所说要收集和维护的统计数据,主要是指前述文中讲到的对象相关的统计数据。
1. 自动收集统计数据
正常情况下,系统会有任务(Task)自动定期收集统计数据,这个任务在固定的时间窗口对数据库相关统计数据进行收集。当然,这个时间窗口也可以改变,默认为每天晚上和周末,具体的任务和时间窗口,以及查看和操作的命令,各个版本会有所不同,具体可以参考官方或其他相关文档。下面,我们以Oracle 11g为例,对这个任务及其调度窗口的查询、禁用、开启及配置等进行说明。
1.1. 任务查看
SQL> select CLIENT_NAME,STATUS from DBA_AUTOTASK_CLIENT;
1.2. 任务禁用文章来源:https://www.toymoban.com/news/detail-496785.html
SQL> exec DBMS_AUTO_TASK_A文章来源地址https://www.toymoban.com/news/detail-496785.html
到了这里,关于解决Oracle SQL语句性能问题——收集和维护统计数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!