FULL TABLE SCAN ÖNLENMESİ


Yazdığımız sorgunun çok uzun sürmesi ve sistemi yorması Full Table Scan olarak adlandırılır.Örneğin select * from hr.employyes sorgusu bir örnektir.Bu tür sorguları optimize etmek gerekir.

SQL> SELECT name, value FROM v$sysstat
WHERE name LIKE ’%table scan%’;

NAME VALUE
------------------------------------------------ -----
table scans (short tables) 125
table scans (long tables) 30
table scans (rowid ranges 0
table scans (cache partitions) 0
table scans (direct read) 0
table scan rows gotten 21224
table scan blocks gotten 804
7 rows selected.

Full Table scan’ı önlemek için DB_FILE_MULTIBLOCK_READ_COUNT parametersi ayarlanıp server Full Table Scan boyunca bir I/O operasyonunun database bloklarının max ne kadarını kullanacağını belirtir.Yada yazılan SQL daha optimize edilir.

SQL> SELECT sid, serial#, opname,
TO_CHAR(start_time,‘HH24:MI:SS’)AS START,
(sofar/totalwork)*100 AS PERCENT_COMPLETE
FROM v$session_longops;

SID SERIAL# OPNAME START PERCENT_COMPLETE
--- --------- ----------- ----------- ----------------
8 219 TABLE SCAN 13:00:09 48.98098

Bu sorgudan full table sacan olayını rahatlıkla görebiliriz.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: