คำสั่ง sp_spaceused ถ้าใช้โดยไม่ใส่ parameter ด้านหลังจะเป็นการแสดงค่าประมาณของ disk space ของทั้ง database ซึ่ง result ที่ได้มีสองส่วน คือ
> sp_spaceused
1. เนื้อที่ที่ database จองไว้ จึงเป็นค่าคงที่ ยกเว้นมีการเพิ่มเนื้อที่ให้กับ database นั้นๆ
database_name database_size
--------------- ---------------------------
master 5 MB
2. แสดงค่าประมาณของเนื้อที่การใช้งานของ database
reserved data index_size unused
--------- --------- ----------- --------
2176 KB 1374 KB 72 KB 730 KB
ผลรวมในข้อ 2 จะประมาณใกล้เคียงกับข้อ 1 ซึ่ง แต่ทั้งนี้เพราะว่าเป็นผลแค่การประมาณเท่านั้น แต่ก็สามารถนำมาใช้ในอ้างอิงได้
สำหรับการใช้ sp_spaceused ที่ตามด้วยชื่อ table จะเป็นการดูการประมาณการใช้เนื้อที่ของ table นั้นๆ
> sp_spaceused xxx
name rowtotal reserved data index_size unused
-------- --------- --------- ------- ---------- ----------
xxx 42955 97554 KB 4340 KB 92140 KB 1074 KB
ซึ่งเราสามารถนำค่าที่ได้มาหาจำนวน row per page ได้ เช่นตัวอย่างข้างต้น
table นี้ใช้เนื้อที่เก็บ data 4340 KB / 2 KB (default 1 page = 2 KB) = 2170 pages
ดังนั้น row / page = 42955 rows / 2170 pages = 19.79
หรือใน 1 page ของ table จะมีประมาณ 19 หรือ 20 rows
หรือถ้าเราใส่ parameter ต่อท้ายเข้าไปอีก ก็จะเป็นการแสดงการประมาณการใช้เนื้อที่ของ index ของ table นั้นๆ
> sp_spaceused blurbs,1
index_name size reserved unused
-------------------- ---------- ---------- ----------
blurbs 0 KB 14 KB 12 KB
tblurbs 14 KB 16 KB 2 KB
name rowtotal reserved data index_size unused
---------- -------- ----------- ------- ---------- ----------
blurbs 6 30 KB 2 KB 14 KB 14 KB
Reference:
Sybase System Procedures: sp_spaceused
No comments:
Post a Comment