Segmentlerin veri dosyası bloklarındaki yerleşimi

8 May by Ahmet Duruöz

Segmentlerin veri dosyası bloklarındaki yerleşimi

Oracle veritabanlarındaki segmentlerin veri dosyalarında nerelerde yer aldığının tespiti için aşağıdaki sorguyu kullanabilirsiniz. Sorgu ile hangi bloklarda hangi nesneler var yada bir nesnenin bir veri dosyasındaki yerleşimini tespit edebilirsiniz.

SET LINESIZE 500 
SET PAGESIZE 100 

COL "Ilk Blok" FORM 9999999999 
COL "Son Blok" FORM 9999999999 
COL "Boyut (MB)" FORM 9999999999  
COL "Sema Adi" FORM A10 
COL "Nesne Adi" FORM A20 
COL "Partition Adi" FORM A20 
COL "Segment Tipi" FORM A8



SELECT start_block "Ilk Blok",
	 end_block "Son Blok",
	 ROUND (  (  (end_block - start_block)
			   * (SELECT VALUE
					FROM v$parameter
				   WHERE NAME = 'db_block_size'))
			/ (1024 * 1024),
			2) "Boyut (MB)",
	 owner "Sema Adi",
	 segment_name "Nesne Adi",
	 partition_name "Partition Adi",
	 segment_type "Segment Tipi"
FROM (SELECT file_id,
			 block_id START_BLOCK,
			 block_id + blocks - 1 end_block,
			 owner,
			 segment_name,
			 partition_name,
			 segment_type
		FROM dba_extents
	   WHERE tablespace_name = '&TABLO_ALANI'
	  UNION ALL
	  SELECT file_id,
			 block_id,
			 block_id + blocks - 1 end_block,
			 'free' owner,
			 NULL segment_name,
			 NULL partition_name,
			 NULL segment_type
		FROM dba_free_space
	   WHERE tablespace_name = '&TABLO_ALANI'
	  ORDER BY 1, 2)
ORDER BY end_block DESC;

 

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir