Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle डेटाबेस में तालिका आकार की जाँच करने के लिए क्वेरी

हमें अक्सर यह पता लगाने की आवश्यकता होती है कि वह विशेष ओरेकल तालिका कितनी बड़ी है। मान लीजिए कि आपने एक बड़ा डेटा लोड किया है और आवंटित ऑरैकल टेबल आकार जानना चाहते हैं।

ऑरैकल में टेबल साइज चेक करने के लिए हम नीचे दी गई क्वेरी का उपयोग कर सकते हैं

ओरेकल तालिका आकार एमबी में के लिए

select
owner as "Schema"
, segment_name as "Object Name"
, segment_type as "Object Type"
, round(bytes/1024/1024,2) as "Object Size (Mb)"
, tablespace_name as "Tablespace"
from dba_segments
where segment_name=’<table_name>’
and owner='<Table owner>';

ओरेकल तालिका आकार जीबी में के लिए

select
owner as "Schema"
, segment_name as "Object Name"
, segment_type as "Object Type"
, round(bytes/1024/1024/1024,2) as "Object Size (Gb)"
, tablespace_name as "Tablespace"
from dba_segments
where segment_name=’<table_name>’
and owner='<Table owner>'
and owner='<Table owner>';

यदि आपके पास dba_segments तक पहुंच नहीं है, तो आप user_segments का भी उपयोग कर सकते हैं

एमबी में आकार के लिए

select segment_name as "Object Name"
, segment_type as "Object Type"
, round(bytes/1024/1024,2) as "Object Size (Mb)"
, tablespace_name as "Tablespace"
from user_segments
where segment_name=’<table_name>’

जीबी में आकार के लिए

select
segment_name as "Object Name"
, segment_type as "Object Type"
, round(bytes/1024/1024/1024,2) as "Object Size (Gb)"
, tablespace_name as "Tablespace"
from user_segments
where segment_name=’<table_name>’;

हम इस क्वेरी का उपयोग किसी विशेष स्कीमा या टेबलस्पेस में शीर्ष दस सबसे बड़ी तालिकाओं को खोजने के लिए भी कर सकते हैं

विशेष स्कीमा में शीर्ष 10 बड़ी तालिकाएं

select * from (select
owner as "Schema"
, segment_name as "Object Name"
, segment_type as "Object Type"
, round(bytes/1024/1024/1024,2) as "Object Size (Gb)"
, tablespace_name as "Tablespace"
from dba_segments
where owner=’<schema>’  and segment_type='TABLE' order by 4 desc)  where rownum < 11;

विशेष तालिका स्थान में शीर्ष 10 बड़ी तालिकाएं

select * from (select
owner as "Schema"
, segment_name as "Object Name"
, segment_type as "Object Type"
, round(bytes/1024/1024/1024,2) as "Object Size (Gb)"
, tablespace_name as "Tablespace"
from dba_segments
where tablespace_name =’<tablespace name>' and segment_name='TABLE' order by 4 desc ) where rownum <11;

10G से बड़ी तालिकाएं सूचीबद्ध करें

select
owner as "Schema"
, segment_name as "Object Name"
, segment_type as "Object Type"
, round(bytes/1024/1024/1024,2) as "Object Size (Gb)"
, tablespace_name as "Tablespace"
from dba_segments
where segment_type='TABLE' where bytes/1024/1024/1024 >10  order by 4 desc;

अगर आप टेबल पर मौजूद इंडेक्स से जुड़ी जगह जानना चाहते हैं, तो यह सवाल यहां दिया गया है

with tables
as
(
select segment_name tname, to_char(bytes/1024/1024,'999,999.99') table_size
from user_segments
where segment_type = 'TABLE'
and segment_name not like 'BIN%'
),
indexes
as
(
select table_name, index_name, scbp, rn,
(select to_char(bytes/1024/1024,'999,999.99') from user_segments where segment_name = INDEX_NAME and segment_type = 'INDEX') index_size
from (
select table_name, index_name,
substr( max(sys_connect_by_path( column_name, ', ' )), 3) scbp,
row_number() over (partition by table_name order by index_name) rn
from user_ind_columns
start with column_position = 1
connect by prior table_name = table_name
and prior index_name = index_name
and prior column_position+1 = column_position
group by table_name, index_name
)
)
select decode( nvl(rn,1), 1, tables.tname ) tname,
decode( nvl(rn,1), 1, tables.table_size ) table_size,
rn "INDEX#",
indexes.scbp,
indexes.index_name,
indexes.index_size
from tables, indexes
where tables.tname = indexes.table_name(+)
and tables.tname = '&1'
order by tables.tname, indexes.rn
/

किसी विशेष स्कीमा के लिए तालिका के आकार का योग

select owner,sum(bytes)/1024/1024/1024 as "SIZE in GB" from dba_segments where owner='SCHEMA_NAME' and segment_type='TABLE' group by owner;

उपरोक्त प्रश्न डेटाबेस में आवंटित स्थान प्रदान करेंगे। यदि आप तालिका द्वारा उपभोग की जाने वाली पंक्ति स्थान में रुचि रखते हैं, तो आप नीचे दी गई क्वेरी का उपयोग कर सकते हैं

select round((num_rows*avg_row_len/1024),2) used_space_bytes from dba_tables where table_name ='<table name>'
and table_owner='<table owner';

तालिका के लिए आंकड़े तैयार होने के बाद यह क्वेरी चलाई जानी चाहिए।

यदि आप समय की अवधि में तालिका के स्थान उपयोग में रुचि रखते हैं या वस्तु वृद्धि की प्रवृत्ति, तो आप नीचे दी गई क्वेरी का उपयोग कर सकते हैं

select * from table(dbms_space.OBJECT_GROWTH_TREND('<table owner>','<table name>','TABLE'));

Example
SQL> select * from table(dbms_space.OBJECT_GROWTH_TREND('SCOTT','EMP_DATA','TABLE'));
TIMEPOINT SPACE_USAGE SPACE_ALLOC QUALITY
---------------------- ---------- ------------ --------
05-JUN-19 08.59.45.214446 AM 210979117 225829120 INTERPOLATED
06-JUN-19 08.59.45.214446 AM 210979117 225829120 INTERPOLATED
07-JUN-19 08.59.45.214446 AM 210979117 225829120 INTERPOLATED

LOB सेगमेंट वाली तालिका के आकार की गणना कैसे करें

तालिका के लिए DBA_SEGMENTS में BYTES कॉलम से चयन करें तालिका खंड दिखाता है लेकिन इसमें LOB (CLOB या BLOB) खंड आकार शामिल नहीं हैं।
तालिका और संबंधित LOBS खंडों के लिए कुल आकार की गणना करने के लिए निम्नलिखित का योग होना चाहिए घटित:
टेबल के लिए बाइट्स => dba_segments
+
LOB सेगमेंट के लिए बाइट्स => dba_lobs और dba_segments से जहां सेगमेंट_टाइप LOBSEGMENT है
+
the LOB इंडेक्स (लॉब लोकेटर) के लिए बाइट्स =dba_indexes और dba_segments

से

कुल आकार की गणना के लिए हम नीचे दी गई क्वेरी का उपयोग कर सकते हैं

ACCEPT SCHEMA PROMPT 'Table Owner: '
ACCEPT TABNAME PROMPT 'Table Name: '
SELECT
(SELECT SUM(S.BYTES)
FROM DBA_SEGMENTS S
WHERE S.OWNER = UPPER('&SCHEMA') AND
(S.SEGMENT_NAME = UPPER('&TABNAME'))) +
(SELECT SUM(S.BYTES)
FROM DBA_SEGMENTS S, DBA_LOBS L
WHERE S.OWNER = UPPER('&SCHEMA') AND
(L.SEGMENT_NAME = S.SEGMENT_NAME AND L.TABLE_NAME = UPPER('&TABNAME') AND L.OWNER = UPPER('&SCHEMA'))) +
(SELECT SUM(S.BYTES)
FROM DBA_SEGMENTS S, DBA_INDEXES I
WHERE S.OWNER = UPPER('&SCHEMA') AND
(I.INDEX_NAME = S.SEGMENT_NAME AND I.TABLE_NAME = UPPER('&TABNAME') AND INDEX_TYPE = 'LOB' AND I.OWNER = UPPER('&SCHEMA')))
"TOTAL TABLE SIZE"
FROM DUAL;

आशा है कि आपको Oracle डेटाबेस में तालिका आकार की जांच करने का यह लेख पसंद आया होगा। हमने विभिन्न प्रश्न दिए हैं और आप आवश्यकता के अनुसार उनका उपयोग कर सकते हैं। कृपया प्रतिक्रिया अवश्य दें

संबंधित लेख

Oracle में टेबलस्पेस कैसे चेक करें:Oracle में टेबलस्पेस कैसे चेक करें, टेबलस्पेस फ्री स्पेस, टेबलस्पेस ग्रोथ इंफॉर्मेशन, टेबलस्पेस साइज, संबंधित डेटा फाइल्स, टेबलस्पेस साइज
ऑरेकल में टेबल बदलें:ऑरेकल में ऑल्टर टेबल को संशोधित करने के लिए उपयोग किया जाता है एक कॉलम, ड्रॉप और बाधाओं को जोड़ें, टेबल कॉलम के डेटा प्रकार को बदलें, टेबल स्टोरेज पैरामीटर बदलें
ओरेकल में टेबल बनाएं:टेबल्स ओरेकल डेटाबेस में डेटा स्टोरेज की मूल इकाई हैं। हम विदेशी कुंजी/प्राथमिक कुंजी के साथ तालिका बनाने के लिए ओरेकल क्रिएट टेबल कमांड का उपयोग करने के तरीके को कवर करते हैं
टेबल बदलें कॉलम जोड़ें Oracle 11g
आस्कटॉम प्रश्न
Oracle में उच्च जल चिह्न में पेश की गई फास्ट ऐड कॉलम सुविधा के बारे में विवरण:oracle डेटाबेस में उच्च जल चिह्न का उपयोग उन ब्लॉकों को दिखाने के लिए किया जाता है जिनका उपयोग कभी भी जीवन चक्र में किया गया है oracle तालिका
ora-00942:ORA-00942 तालिका या दृश्य का समस्या निवारण करना सीखें Oracle डेटाबेस में मौजूद नहीं है। कम समय में त्रुटि को हल करने के आसान तरीके

अनुशंसित पाठ्यक्रम

यहाँ Oracle SQL के लिए अच्छा Udemy कोर्स है
Oracle-Sql-Step-by-step :इस कोर्स में बेसिक sql, जॉइन, टेबल बनाना और इसकी संरचना को संशोधित करना, व्यू, यूनियन, यूनियन -ऑल और बहुत कुछ शामिल है। . SQL स्टार्टर के लिए एक बढ़िया कोर्स और अनिवार्य कोर्स
पूर्ण Oracle SQL प्रमाणन पाठ्यक्रम :यह उन लोगों के लिए एक अच्छा कोर्स है जो SQL डेवलपर कौशल के लिए नौकरी के लिए तैयार होना चाहते हैं। एक अच्छा समझाया गया कोर्स
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql डेवलपर टूल का उपयोग कई डेवलपर्स द्वारा किया जा रहा है। यह कोर्स हमें प्रभावी ढंग से इसका उपयोग करने और एक उत्पादक sql डेवलपर बनने के तरीके के बारे में ट्रिक्स और सबक देता है
Oracle SQL प्रदर्शन ट्यूनिंग मास्टरक्लास 2020 :प्रदर्शन ट्यूनिंग एक महत्वपूर्ण और सर्वाधिक मांग वाला कौशल है। इसके बारे में जानने और sql प्रदर्शन ट्यूनिंग शुरू करने के लिए यह एक अच्छा कोर्स है


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में FROM क्लॉज के बिना चयन करें

  2. MERGE स्टेटमेंट में कई कॉलम अपडेट करें ORACLE

  3. UTL_FILE.FREMOVE उदाहरण:Oracle में एक फ़ाइल हटाएं

  4. Oracle में DBTIMEZONE फ़ंक्शन

  5. Oracle IN खंड में LIKE का उपयोग करना