当前位置: 首页 > news >正文

Dav_笔记9:Using Indexes and Clusters之1

本节介绍以下内容:

■调整逻辑结构

■使用SQLAccess Advisor进行索引调整

调整逻辑结构

虽然查询优化有助于避免在查询执行中使用非选择性索引,但SQL引擎必须继续维护针对表定义的所有索引,无论查询是否使用它们。索引维护可以在任何写密集型应用程序中呈现显着的CPU和I / O资源需求。换句话说,除非必要,否则不要构建索引。

要保持最佳性能,请删除应用程序未使用的索引。您可以在代表工作负载的时间段内使用ALTER INDEX MONITORING USAGE功能查找未使用的索引。此监视功能记录是否已使用索引。如果您发现尚未使用索引,请将其删除。确保您正在监视代表性工作负载,以避免丢弃使用的索引,但不会删除您采样的工作负载。

此外,应用程序中的索引有时会使用对语句执行计划的调查不明显的用法。一个例子是父表上的外键索引,它可以防止在子表上取出共享锁。

如果您决定是否创建新索引来调优语句,那么您还可以使用EXPLAIN PLAN语句来确定优化程序是否在运行应用程序时选择使用这些索引。如果创建新索引以调整当前已解析的语句,则Oracle数据库将使该语句无效。

下次解析语句时,优化器会自动选择可能使用新索引的新执行计划。如果在远程数据库上创建新索引以调整分布式语句,则优化程序会在下一次解析语句时考虑这些索引。

请注意,创建用于调优一个语句的索引可能会影响优化程序对其他语句的执行计划的选择。例如,如果您创建一个索引供一个语句使用,那么优化器也可以选择将该索引用于应用程序中的其他语句。因此,重新检查应用程序的性能和执行计划,并在调整最初确定用于调优的语句后重新运行SQL跟踪工具。

使用SQLAccess Advisor进行索引调整

SQL Access Advisor是手动确定所需索引的替代方法。 从Oracle Enterprise Manager调用或通过DBMS_ADVISOR包API运行时,此顾问程序会建议一组索引。 SQL Access Advisor建议使用工作负载,或者为指定的模式生成假设的工作负载。

可以使用各种工作负载源,例如SQL缓存的当前内容,用户定义的SQL语句集或SQL调优集。 给定工作负载,SQL Access Advisor会生成一组建议,您可以从中选择要实现的索引。 提供了一个可以通过Oracle Enterprise Manager手动或自动执行的实现脚本。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ROS2 humble使用nav2_map_server保存地图报错:Failed to spin map subscription
  • qt 下拉列表变更事件
  • leetcode-383.赎金信
  • 阿里ChatSDK使用,开箱即用聊天框
  • 前端面试题日常练-day92 【Less】
  • JVM OutOfMemoryError异常模拟
  • C语言经典程序100案例
  • 编程从零基础到进阶(更新中)
  • Redis 数据类型
  • 对服务器进行基本了解(二)
  • 如何制定高效的媒体公关解决方案
  • 网络抓包知识
  • MBR40150FCT-ASEMI无人机专用MBR40150FCT
  • SEO效果好的wordpress主题
  • 计算机视觉之SLAM与6Dof
  • [deviceone开发]-do_Webview的基本示例
  • 07.Android之多媒体问题
  • HTML-表单
  • Java 网络编程(2):UDP 的使用
  • python_bomb----数据类型总结
  • Redis在Web项目中的应用与实践
  • scala基础语法(二)
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前嗅ForeSpider中数据浏览界面介绍
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 微信小程序开发问题汇总
  • 温故知新之javascript面向对象
  • 学习JavaScript数据结构与算法 — 树
  • 用jquery写贪吃蛇
  • 鱼骨图 - 如何绘制?
  • ​马来语翻译中文去哪比较好?
  • # 透过事物看本质的能力怎么培养?
  • (1) caustics\
  • (1)Android开发优化---------UI优化
  • (20)docke容器
  • (MATLAB)第五章-矩阵运算
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (十) 初识 Docker file
  • (十二)Flink Table API
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • **PHP二维数组遍历时同时赋值
  • .NET CLR Hosting 简介
  • .NET/C# 使用反射注册事件
  • .net打印*三角形
  • .Net实现SCrypt Hash加密
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • 。Net下Windows服务程序开发疑惑
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • ?
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @ConfigurationProperties注解对数据的自动封装
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429