ฉันจะประมาณขนาดของตารางภายใน Schema (Oracle) ได้อย่างไร


11

ฉันพยายามประเมินขนาดตารางภายในสคีมาของฉัน (เป็น MB) นี่คือสิ่งที่ฉันมี:

SELECT table_name, owner, last_analyzed
FROM all_tables

ฉันค่อนข้างใหม่กับ SQL ดังนั้นฉันจึงไม่รู้ว่าจะทำสิ่งนี้อย่างไร

ขอขอบคุณ.

คำตอบ:


10

ดูที่มุมมอง "dba_segments" (หรือ user_segments หากคุณไม่มีสิทธิ์ dba) ข้อความค้นหาต่อไปนี้ควรให้สิ่งที่คุณต้องการ:

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
order by owner;

สวัสดีเบอนัวต์มันทำงานได้อย่างสมบูรณ์แบบขอบคุณ ฉันลองดูที่ฟิลด์ตารางที่ฉันสามารถใช้งานได้ แต่ฉันไม่พบ "เจ้าของ" หรือฟิลด์ที่อัปเดตล่าสุด อย่างไรก็ตามฉันใช้มุมมอง user_segments ข้อมูลนี้จะสามารถใช้ได้ภายใต้ dba_segments หรือไม่
Diego R

กลุ่มทั้งหมดที่แสดงใน user_segments เป็นของบัญชีที่คุณใช้ในการเข้าสู่ระบบนั่นคือสาเหตุที่ไม่มีคอลัมน์เจ้าของ
เบอนัวต์

คำนำหน้าที่ถูกต้องสำหรับ 1024/1024 เป็นMiมากกว่าM(ดูคำนำหน้าแบบไบนารี )
Wernfried Domscheit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.