Search results for: “sql profile”

  • Oracle SQL性能优化专题

    Oracle SQL性能优化专题 首先介绍一些 SQL优化专题的博文:   Script:常用SQL语句优化脚本 【Oracle Database 12c新特性】SYS_AUTO_SPM_EVOLVE_TASK 自动作业 【12c database 新特性】Adaptive Execution Plans 自适应的执行计划 [SQL调优] Maclean讲SQL调优精要 More About SYS_AUTO_SQL_TUNING_TASK 【Maclean技术分享】Oracle数据库优化经验- ADDM DBA 【Maclean技术分享】开Oracle调优鹰眼,深入理解AWR性能报告 第二讲 【技术分享】开Oracle调优鹰眼,深入理解AWR性能报告第一讲 【性能优化】optimizer statistics统计信息管理技巧 【Maclean Liu技术分享】拨开Oracle优化器迷雾探究Histogram之秘 【CBO Optimizer优化器】IX_SEL索引选择率 【11g新特性】SPM SQL PLAN MANAGEMENT执行计划管理流程图 【SQL优化】Oracle中的Top-N与分页匹配查询 【性能优化】PX_MISMATCH导致Oracle实例挂起 【11g新特性】Cardinality Feedback基数反馈 Oracle CBO术语大集合 关于10053 trace中的UNCOMPBKTS和ENDPTVALS CBO Cost Formulas基于成本优化器的成本计算公式大全 RBO基于规则的优化器access paths优先级 SQL Performance Analyzer SPA常用脚本汇总 为什么说log…

  • Oracle AWR, ASH, ADDM 和 Sql Tuning Advisor

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]     目的: 这篇文章的目的是说明如何使用AWR诊断和解决数据库上的性能问题。 在10g之前,AWR提供强大的工具帮助DBA识别和解决性能问题,没有麻烦的复杂统计分析和大量的报告。 更好的使用这些新特性,简化信息的可视化,强烈推荐使用EM。 范围 这篇文档适用于DBA。 细节 性能调优的方法:10g之前 在10g之前,调优数据库的过程是复杂和耗时的。通俗的讲,当一个性能问题发生时,DBA能够通过STATSPACK访问性能统计数据,这数据能够检查确定数据库的时间花在哪里。(比较会话的等待事件和执行时间)。根据顶端事件定位,通常需要额外的深入分析来理解问题的根本原因,最终确定问题的根源。 Document 94224.1 FAQ- Statspack Complete Reference Document  394937.1 Statistics Package (STATSPACK) Guide Document 149113.1  Installing and Configuring StatsPack Package Document 149121.1 Gathering a StatsPack snapshot Document 228913.1 Systemwide Tuning using STATSPACK Reports http://www.oracle.com/technetwork/database/focus-areas/performance/statspack-opm4-134117.pdf 这是一些为什么用statspack分析性能问题复杂和耗时的原因:   一个数据库有上百的等待事件、闩、队列、buffer busy…

  • 已经几乎不需要修正应用了! 划时代的SQL调优方法

      https://www.askmac.cn/archives/sqltuning-sql-profile.html ‎   以前的SQL调优 SQL Profile是什么 调优执行顺序 经常被问到的问题 总结   <一般而言SQL的调优流程> 诊断/指定瓶颈 执行合适的调优 检查效果   根据需要进一步调优 ・Automatic Database Diagnostic Monitor(ADDM) ADDM是监视/诊断数据库性能的功能。 发现内存不足以及I/O问题、性能较差的SQL、Real Application Clusters(RAC)相关的问题等等各种问题,给数据库管理者提供建议。 那时,会为数据库管理者提供解决问题所需要进行的操作提出建议,数据库管理者就可以高效解决问题。 ADDM与其他建议相同都可以手动启动来诊断数据库,但一般而言是定期性地自动启动,监视数据库是否有性能问题。 ADDM自动启动的时机是在取得AWR的snapshot时,通过取得了snapshot的MMON进程来自动启动 手动启动ADDM的情况下,可以诊断过去任一时间点的数据库。 ADDM是从两个snapshot中取得数据库的负荷信息,进行诊断。 自动启动的情况下,使用最新取得的snapshot以及1个之前的snapshot,手动启动的情况下,用户可以指定任意两个snapshot。 要使用这个功能的话,需要将STATISTICS_LEVEL 初始化参数设定为TYPICAL(默认)或者ALL。   SQL较慢的时候,首先要寻找原因!   以前的SQL调优 <一般而言SQL的调优流程> 诊断/指定瓶颈 STATSPACK: 与DB整体的统计一起收集SQL统计 EXPLAIN PLAN: 在每个SQL中表示执行计划 SQL TRACE与TKPROF: 收集以session等单位来执行的SQL执行的统计信息,并且 总结结果报告。 SQL*Plus的AUTOTRACE機能: 在每个SQL中表示执行计划以及性能统计   2.执行合适的调优 优化的选择<到Oracle 9i 为止> RBO…

  • V$SQLCOMMAND SQL opcodes and names

    SQL> select command_type,command_name from V$SQLCOMMAND; COMMAND_TYPE COMMAND_NAME ———— ———————————————————- 0 1 CREATE TABLE 2 INSERT 3 SELECT 4 CREATE CLUSTER 5 ALTER CLUSTER 6 UPDATE 7 DELETE 8 DROP CLUSTER 9 CREATE INDEX 10 DROP INDEX 11 ALTER INDEX 12 DROP TABLE 13 CREATE SEQUENCE 14 ALTER SEQUENCE 15 ALTER TABLE 16 DROP SEQUENCE 17…

  • Oracle SQL优化之自动 SQL 优化

    描述语句概要分析 使用 SQL 优化指导 使用 SQL 访问指导 使用自动 SQL 优化 自动优化 SQL 语句 自动优化 SQL 语句可简化 SQL 优化的整个过程,并取代手动 SQL 优化。 优化程序模式: –正常模式 –优化模式或自动优化优化程序 (ATO) SQL 优化指导用于访问优化模式。 应仅对高负载的 SQL 语句使用优化模式。 自动优化 SQL 语句是查询优化程序自动执行整个 SQL 优化过程的功能。此自动过程取代了复杂、重复且费时的手动 SQL 优化功能。SQL 优化指导向用户公开了 SQL 优化的功能。增强的查询优化程序有两种模式: 在正常模式下,优化程序编译 SQL 并生成执行计划。正常模式下的优化程序会为绝大多数的 SQL 语句生成一个合理的执行计划。在正常模式下,优化程序遵循非常严格的时间约束条件,通常为一秒钟的若干分之几,在此期间它必须找到一个有效的执行计划。 在优化模式下,优化程序执行更多分析,检查是否可以进一步改善在正常模式下生成的执行计划。在优化模式下查询优化程序的输出并不是一个执行计划,而是一系列操作及其理由和预期优点(用于生成一个有明显优势的更好计划)。在优化模式下调用的优化程序被称为自动优化优化程序 (ATO)。ATO 执行的优化被称为系统 SQL 优化。 在优化模式下,优化程序可以用几分钟的时间来优化单条语句。对于对整个系统产生重要影响的高负载的复杂 SQL 语句,应使用 ATO。   应用程序优化面临的挑战…

  • More About SYS_AUTO_SQL_TUNING_TASK

    SELECT parameter_name, parameter_value FROM dba_advisor_parameters WHERE task_name = ‘SYS_AUTO_SQL_TUNING_TASK’ PARAMETER_NAME PARAMETER_VALUE —————————— ————————————————– USERNAME UNUSED BASIC_FILTER UNUSED PLAN_FILTER UNUSED RANK_MEASURE1 UNUSED RANK_MEASURE2 UNUSED RANK_MEASURE3 UNUSED SQL_PERCENTAGE 1 SQL_LIMIT -1 RESUME_FILTER UNUSED LOCAL_TIME_LIMIT 1200 TEST_EXECUTE FULL APPLY_CAPTURED_COMPILENV UNUSED ACCEPT_SQL_PROFILES FALSE MAX_SQL_PROFILES_PER_EXEC 20 MAX_AUTO_SQL_PROFILES 10000 DAYS_TO_EXPIRE UNLIMITED END_SNAPSHOT UNUSED END_TIME UNUSED INSTANCE UNUSED JOURNALING INFORMATION MODE COMPREHENSIVE…

  • MySQL Query Analyzer查询分析器

    MySQL Query Analyzer查询分析器          

  • latch free:SQL memory manager latch

    一套HP-UX上的10.2.0.4 RAC系统,其中一个节点出现大量的latch free:SQL memory manager latch等待事件, 相关ADDM性能信息:   SELECT KSMCHCLS CLASS, COUNT(KSMCHCLS) NUM, SUM(KSMCHSIZ) SIZ, To_char( ((SUM(KSMCHSIZ)/COUNT(KSMCHCLS)/1024)),’999,999.00′)||’k’ “AVG SIZE” FROM X$KSMSP GROUP BY KSMCHCLS; CLASS NUM SIZ AVG SIZE ——– ———- ———- ———— R-freea 927 9481080 9.99k freeabl 1037478 2001975328 1.88k R-free 593 170107192 280.14k recr 515080 595805056 1.13k R-perm 498 35345056 69.31k R-recr 2…

  • SQL调优:带函数的谓词导致CBO Cardinality计算误差

    今天处理了这样一问题,where条件中存在函数fun(date)<to_date(‘9999-01-01′,’YYYY-MM-DD’)这样的无实际意义谓词,导致CBO计算基数时cardinality远小于实际情况,导致优化器认为2个源数据集的基数都不大,从而选择了HASH JOIN Right SEMI+SORT ORDER BY的执行计划,但是由于实际基数远大于computed 计算值所以变成了大的数据集做HASH JOIN并全数据排序,而实际该SQL只要求返回几十行数据而已,使用NESTED LOOP SEMI JOIN可以立即返回排序的前20行数据。 这里就需要解释带函数的谓词时CBO如何计算基数,我们通过下面的例子来说明:     create or replace function check_date( RDATE in date) return date is begin IF rdate< to_date(‘2099-01-01′,’YYYY-MM-DD’) then return rdate; ELSIF rdate >=to_date(‘2099-01-01′,’YYYY-MM-DD’) then return to_date(‘2000-01-01’); end if; end check_date; / SQL> select check_date (sysdate) from dual; CHECK_DAT ——— 06-DEC-12 drop table tab1;…

  • Script:常用SQL语句优化脚本

    SQLT 下载 https://www.askmac.cn/wp-content/uploads/2011/01/sqlt.zip  [oracle@PD009 xplore]$ pwd /home/oracle/sqlt/utl/xplore [oracle@PD009 xplore]$ ls create_xplore_script.sql drop_sys_views.sql drop_user_objects.sql install.sql readme.txt star.sql sys_views.sql uninstall.sql user_objects.sql xplore_2.zip xplore.pkb xplore.pks xplore_script_1.log xplore_script_1.sql SQL> start install Test Case User: SH Password: oracle Installation completed. You are now connected as SH. 1. Set CBO env if needed 2. Execute @create_xplore_script.sql SQL> @create_xplore_script.sql Parameter 1: XPLORE…