Bo's Oracle Station

查看: 2953|回复: 0

课程第61次(2017-11-28星期二)

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2017-11-28 19:49:28 | 显示全部楼层 |阅读模式
1Z0-052第13章
1Z0-053第13章
1Z0-05219章(上完19章),1Z0-05321章(上完18章)和1Z0-063多租户部分共9章(上完0章)
总共上完全部49章中的37

SQL Access Advisor务必把下图的“钩”钩上:
Screenshot.png

Screenshot-1.png

  1. select  * from dict where table_name like '%WAIT_CLASS%';

  2. select  * from v$session_wait_class;

  3. select  * from
  4. v$system_wait_class;


  5. select  * from v$fixed_Table where
  6.   name like 'V$%ADVICE';
  7.   
  8.   select  object_name , status
  9.   
  10.    from dba_objects where object_name='PROC1';
复制代码

关于分服务、分模块、分行动和定客户:
Screenshot-2.png

除了ADDM/SQL Tuning Advisor/SQL Access  Advisor以外的老的这些Advisor:
Screenshot-3.png


Screenshot-4.png

关于无效对象,不要把隐式重编译的时间留给用户会话:
  1. SQL>
  2. SQL> create or replace  procedure proc1 (  p1 number )
  3.   2  is
  4.   3  begin
  5.   4    update t05213 set a=a+p1 ;
  6.   5     commit;
  7.   6  end;
  8.   7  /

  9. Procedure created.

  10. SQL> show error     
  11. No errors.
  12. SQL> alter table t05213 add ( b date ) ;

  13. Table altered.

  14. SQL> exec proc1;
  15. BEGIN proc1; END;

  16.       *
  17. ERROR at line 1:
  18. ORA-06550: line 1, column 7:
  19. PLS-00306: wrong number or types of arguments in call to 'PROC1'
  20. ORA-06550: line 1, column 7:
  21. PL/SQL: Statement ignored


  22. SQL> exec proc1(100) ;

  23. PL/SQL procedure successfully completed.

  24. SQL> alter table t05213 add ( c varchar2(20)) ;        

  25. Table altered.

  26. SQL> alter procedure proc1 compile;

  27. Procedure altered.

  28. SQL> select  * from t05213;

  29.          A B                      C
  30. ---------- ------------------ --------------------
  31.        101

  32. SQL>
复制代码
数据库缓冲区缓存的精细调优:
  1. select * from v$memory_dynamic_components;

  2. select  * from V$MEMORY_RESIZE_OPS ;

  3. create tablespace tbs4k datafile '/u01/app/oracle/oradata/orcl/tbs4K'
  4. size 5M blocksize 4K;

  5. select  t.BUFFER_POOL
  6.    from dba_tables t
  7.    where t.OWNER='HR' and t.TABLE_NAME='T04209_UNAME';
  8.    
  9.    select i.BUFFER_POOL
  10.     from dba_indexes i
  11.         where i.TABLE_OWNER='HR' and i.TABLE_NAME='T04209_UNAME';
  12.         
  13.         alter table hr.t04209_uname storage ( buffer_pool keep );
  14.         
  15.         alter index hr.i04209_uname storage ( buffer_pool keep );
复制代码
共享池的精细调优:

  1. select  kept from v$db_object_cache
  2.   where   owner='HR' and  name ='PROC1';
  3.   
  4.   select  kept from v$db_object_cache
  5.    where kept <> 'NO';
  6.    
  7. begin
  8.     dbms_shared_pool.keep('HR.PROC1');
  9. end;

  10. select  kept from v$db_object_cache
  11.   where   owner='HR' and  name ='PROC1';
复制代码
关于cursor_sharing:

  1. select  s.SQL_ID, s.SQL_HASH_VALUE
  2. from v$session  s where username='HR';

  3. select  * from v$sqlarea
  4. where sql_id='dh73w3ss300hp';
复制代码
  1. alter session set cursor_sharing=similar;
复制代码



Screenshot-5.png

向操作系统直接要排序内存(快):

  1. [oracle@station26 ~]$ sqlplus /nolog

  2. SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 20 19:51:12 2017

  3. Copyright (c) 1982, 2014, Oracle.  All rights reserved.

  4. SQL> conn hr/oracle_4U
  5. Connected.
  6. SQL>  alter session set sort_area_size=1073741824;

  7. Session altered.

  8. SQL> alter session set workarea_size_policy=manual;

  9. Session altered.

  10. SQL> set timing on
  11. SQL> set autot traceonly
  12. SQL>  select  text from t_big a, departments b  order by text ;

  13. 4319811 rows selected.

  14. Elapsed: 00:01:02.29

  15. Execution Plan
  16. ----------------------------------------------------------
  17. Plan hash value: 281403803

  18. --------------------------------------------------------------------------------
  19. --------------

  20. | Id  | Operation        | Name         | Rows  | Bytes |TempSpc| Cost (%CP
  21. U)| Time     |

  22. --------------------------------------------------------------------------------
  23. --------------

  24. |   0 | SELECT STATEMENT    |         |      35M|    3226M|         |     781K  (
  25. 1)| 00:00:31 |

  26. |   1 |  SORT ORDER BY        |         |      35M|    3226M|    3399M|     781K  (
  27. 1)| 00:00:31 |

  28. |   2 |   MERGE JOIN CARTESIAN    |         |      35M|    3226M|         |    8520   (
  29. 1)| 00:00:01 |

  30. |   3 |    TABLE ACCESS FULL    | T_BIG      |    1305K|     119M|         |    8518   (
  31. 1)| 00:00:01 |

  32. |   4 |    BUFFER SORT        |         |      27 |         |         |     772K  (
  33. 1)| 00:00:31 |

  34. |   5 |     INDEX FAST FULL SCAN| DEPT_ID_PK |      27 |         |         |       0   (
  35. 0)| 00:00:01 |

  36. --------------------------------------------------------------------------------
  37. --------------



  38. Statistics
  39. ----------------------------------------------------------
  40.       1  recursive calls
  41.       0  db block gets
  42.        1846  consistent gets
  43.       1  physical reads
  44.       0  redo size
  45.    79924241  bytes sent via SQL*Net to client
  46.     3168409  bytes received via SQL*Net from client
  47.      287989  SQL*Net roundtrips to/from client
  48.       2  sorts (memory)
  49.       0  sorts (disk)
  50.     4319811  rows processed

  51. SQL>  select  text from t_big a, countries b  order by text ;      

  52. 3999825 rows selected.

  53. Elapsed: 00:00:59.98

  54. Execution Plan
  55. ----------------------------------------------------------
  56. Plan hash value: 3500385780

  57. --------------------------------------------------------------------------------
  58. -----------------

  59. | Id  | Operation          | Name        | Rows    | Bytes |TempSpc| Cost (
  60. %CPU)| Time    |

  61. --------------------------------------------------------------------------------
  62. -----------------

  63. |   0 | SELECT STATEMENT      |         |    32M|  2987M|    |   928K
  64.   (1)| 00:00:37 |

  65. |   1 |  SORT ORDER BY          |         |    32M|  2987M|  3268M|   928K
  66.   (1)| 00:00:37 |

  67. |   2 |   MERGE JOIN CARTESIAN|         |    32M|  2987M|    |   212K
  68.   (1)| 00:00:09 |

  69. |   3 |    INDEX FULL SCAN    | COUNTRY_C_ID_PK |    25 |    |    |     1
  70.   (0)| 00:00:01 |

  71. |   4 |    BUFFER SORT          |         |  1305K|   119M|    |   928K
  72.   (1)| 00:00:37 |

  73. |   5 |     TABLE ACCESS FULL | T_BIG        |  1305K|   119M|    |  8516
  74.   (1)| 00:00:01 |

  75. --------------------------------------------------------------------------------
  76. -----------------



  77. Statistics
  78. ----------------------------------------------------------
  79.     106  recursive calls
  80.      40  db block gets
  81.        1919  consistent gets
  82.       7  physical reads
  83.       0  redo size
  84.    74249708  bytes sent via SQL*Net to client
  85.     2933746  bytes received via SQL*Net from client
  86.      266656  SQL*Net roundtrips to/from client
  87.       8  sorts (memory)
  88.       0  sorts (disk)
  89.     3999825  rows processed

  90. SQL>
  91.    



复制代码
由Oracle分配PGA:
  1. [oracle@station26 ~]$ sqlplus /nolog

  2. SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 20 19:52:34 2017

  3. Copyright (c) 1982, 2014, Oracle.  All rights reserved.

  4. SQL> conn hr/oracle_4U
  5. Connected.
  6. SQL> set timing on
  7. SQL> set autot traceonly
  8. SQL> select  text from t_big a, departments b  order by text ;

  9. 4319811 rows selected.

  10. Elapsed: 00:01:14.21

  11. Execution Plan
  12. ----------------------------------------------------------
  13. Plan hash value: 281403803

  14. --------------------------------------------------------------------------------
  15. --------------

  16. | Id  | Operation                | Name             | Rows  | Bytes |TempSpc| Cost (%CP
  17. U)| Time     |

  18. --------------------------------------------------------------------------------
  19. --------------

  20. |   0 | SELECT STATEMENT        |             |          35M|        3226M|             |         781K  (
  21. 1)| 00:00:31 |

  22. |   1 |  SORT ORDER BY                |             |          35M|        3226M|        3399M|         781K  (
  23. 1)| 00:00:31 |

  24. |   2 |   MERGE JOIN CARTESIAN        |             |          35M|        3226M|             |        8520   (
  25. 1)| 00:00:01 |

  26. |   3 |    TABLE ACCESS FULL        | T_BIG      |        1305K|         119M|             |        8518   (
  27. 1)| 00:00:01 |

  28. |   4 |    BUFFER SORT                |             |          27 |             |             |         772K  (
  29. 1)| 00:00:31 |

  30. |   5 |     INDEX FAST FULL SCAN| DEPT_ID_PK |          27 |             |             |           0   (
  31. 0)| 00:00:01 |

  32. --------------------------------------------------------------------------------
  33. --------------



  34. Statistics
  35. ----------------------------------------------------------
  36.         214  recursive calls
  37.           4  db block gets
  38.        1846  consistent gets
  39.       27220  physical reads
  40.           0  redo size
  41.    79924241  bytes sent via SQL*Net to client
  42.     3168409  bytes received via SQL*Net from client
  43.      287989  SQL*Net roundtrips to/from client
  44.           1  sorts (memory)
  45.           1  sorts (disk)
  46.     4319811  rows processed

  47. SQL> select  text from t_big a, countries b  order by text ;

  48. 3999825 rows selected.

  49. Elapsed: 00:01:13.56

  50. Execution Plan
  51. ----------------------------------------------------------
  52. Plan hash value: 3500385780

  53. --------------------------------------------------------------------------------
  54. -----------------

  55. | Id  | Operation              | Name                | Rows        | Bytes |TempSpc| Cost (
  56. %CPU)| Time        |

  57. --------------------------------------------------------------------------------
  58. -----------------

  59. |   0 | SELECT STATEMENT      |                 |    32M|  2987M|        |   928K
  60.   (1)| 00:00:37 |

  61. |   1 |  SORT ORDER BY              |                 |    32M|  2987M|  3268M|   928K
  62.   (1)| 00:00:37 |

  63. |   2 |   MERGE JOIN CARTESIAN|                 |    32M|  2987M|        |   212K
  64.   (1)| 00:00:09 |

  65. |   3 |    INDEX FULL SCAN    | COUNTRY_C_ID_PK |    25 |        |        |     1
  66.   (0)| 00:00:01 |

  67. |   4 |    BUFFER SORT              |                 |  1305K|   119M|        |   928K
  68.   (1)| 00:00:37 |

  69. |   5 |     TABLE ACCESS FULL | T_BIG                |  1305K|   119M|        |  8516
  70.   (1)| 00:00:01 |

  71. --------------------------------------------------------------------------------
  72. -----------------



  73. Statistics
  74. ----------------------------------------------------------
  75.         199  recursive calls
  76.           4  db block gets
  77.        1843  consistent gets
  78.       25215  physical reads
  79.           0  redo size
  80.    74249708  bytes sent via SQL*Net to client
  81.     2933746  bytes received via SQL*Net from client
  82.      266656  SQL*Net roundtrips to/from client
  83.           1  sorts (memory)
  84.           1  sorts (disk)
  85.     3999825  rows processed

  86. SQL>
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-4-24 00:06 , Processed in 0.163310 second(s), 36 queries .

快速回复 返回顶部 返回列表