Advertisement
Guest User

archives

a guest
Nov 16th, 2017
596
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.74 KB | None | 0 0
  1.  
  2. SET tab off underline off linesize 2050 newpage none pagesize 4000
  3. SET feedback ON colsep | editfile /tmp/sqlplusedit.tmp LONG 10000000 trimout ON;
  4. SET numwidth 13;
  5.  
  6. SET serveroutput ON size 1000000 trimspool ON longchunksize 10000000 TIME ON;
  7. WITH
  8. Q1 AS (
  9. SELECT ROWNUM RN, q1a.LH_DATE
  10. FROM (SELECT DISTINCT TRUNC (q1b.FIRST_TIME) LH_DATE
  11. FROM V$LOG_HISTORY q1b
  12. ORDER BY TRUNC (q1b.FIRST_TIME) DESC) q1a
  13. WHERE ROWNUM <= 9
  14. ),
  15. Q2 AS (
  16. SELECT ROWNUM - 1 HN
  17. FROM DBA_OBJECTS
  18. WHERE ROWNUM <= 24
  19. ),
  20. Q3 AS (
  21. SELECT TRUNC (q3a.FIRST_TIME) LH_DATE, TO_CHAR (q3a.FIRST_TIME, 'HH24') LH_HN,
  22. NVL (q3b.BLOCKS * q3b.BLOCK_SIZE + 1024, 2048) LH_SZ
  23. FROM V$LOG_HISTORY q3a,
  24. V$ARCHIVED_LOG q3b
  25. WHERE q3a.THREAD# = q3b.THREAD#
  26. AND q3a.SEQUENCE# = q3b.SEQUENCE#
  27. )
  28. SELECT LPAD (C1, MAX (LENGTH (C1)) over (), C0P) ||' = ['||
  29. REPLACE (LPAD (C2, MAX (LENGTH (C2)) over (), C0P), ' 0M', '   ') ||'|'||
  30. REPLACE (LPAD (C3, MAX (LENGTH (C3)) over (), C0P), ' 0M', '   ') ||'|'||
  31. REPLACE (LPAD (C4, MAX (LENGTH (C4)) over (), C0P), ' 0M', '   ') ||'|'||
  32. REPLACE (LPAD (C5, MAX (LENGTH (C5)) over (), C0P), ' 0M', '   ') ||'|'||
  33. REPLACE (LPAD (C6, MAX (LENGTH (C6)) over (), C0P), ' 0M', '   ') ||'|'||
  34. REPLACE (LPAD (C7, MAX (LENGTH (C7)) over (), C0P), ' 0M', '   ') ||'|'||
  35. REPLACE (LPAD (C8, MAX (LENGTH (C8)) over (), C0P), ' 0M', '   ') ||'|'||
  36. REPLACE (LPAD (C9, MAX (LENGTH (C9)) over (), C0P), ' 0M', '   ') ||'|'||
  37. REPLACE (LPAD (C10, MAX (LENGTH (C10)) over (), C0P), ' 0M', '   ') ||']'
  38. FROM (
  39. (SELECT 0 C0O, ' ' C0P, 'HH' C1,
  40. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 9 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C2,
  41. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 8 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C3,
  42. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 7 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C4,
  43. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 6 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C5,
  44. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 5 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C6,
  45. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 4 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C7,
  46. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 3 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C8,
  47. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 2 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C9,
  48. NVL (TO_CHAR (MAX (CASE WHEN a.RN = 1 THEN a.LH_DATE ELSE NULL END), ' DDMon '), '00Zzz') C10
  49. FROM Q1 a
  50. UNION ALL
  51. SELECT 1 C0O, '-' C0P, '-' C1, '-' C2, '-' C3, '-' C4, '-' C5, '-' C6, '-' C7, '-' C8, '-' C9, '-' C10
  52. FROM dual
  53. UNION ALL
  54. SELECT 26 C0O, '-' C0P, '-' C1, '-' C2, '-' C3, '-' C4, '-' C5, '-' C6, '-' C7, '-' C8, '-' C9, '-' C10
  55. FROM dual
  56. UNION ALL
  57. SELECT 27 C0O, ' ' C0P, 'DD' C1,
  58. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 9 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C2,
  59. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 8 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C3,
  60. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 7 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C4,
  61. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 6 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C5,
  62. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 5 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C6,
  63. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 4 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C7,
  64. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 3 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C8,
  65. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 2 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C9,
  66. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 1 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C10
  67. FROM Q1 q1,
  68. Q3 q3
  69. WHERE q3.LH_DATE = q1.LH_DATE)
  70. UNION ALL
  71. (SELECT 2 + q3.LH_HN C0O, ' ' C0P, TO_CHAR (q3.LH_HN, 'FM00') C1,
  72. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 9 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C2,
  73. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 8 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C3,
  74. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 7 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C4,
  75. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 6 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C5,
  76. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 5 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C6,
  77. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 4 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C7,
  78. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 3 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C8,
  79. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 2 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C9,
  80. ' '|| TO_CHAR (SUM (CASE WHEN q1.RN = 1 THEN q3.LH_SZ ELSE 0 END) / 1048576, 'FM999G999G990')||'M' C10
  81. FROM Q1 q1,
  82. Q2 q2,
  83. Q3 q3
  84. WHERE q3.LH_DATE = q1.LH_DATE
  85. AND q3.LH_HN = TO_CHAR (q2.HN, 'FM00')
  86. GROUP BY (q3.LH_HN))
  87. )
  88. ORDER BY C0O
  89. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement