PCTFREE və PCTUSED parametrləri


Hər iki parameter db bloklarında yaddaş sahəsinin idarə olunması üçündür. Daha dəqiq PCTFREE və PCTUSED db blokuna sətrlərin insert və update olunması zamanı  boş yaddaş sahəsinin  istifadəsini idarə etmək üçündür. PCTFREE  gələcək updatelər üçün DB blokunda nə qədər yer reserve olunmasını təyin edən blokun yaddaş parametridir. Misal üçün PCTFREE=10 təyin etdikdə, Oracle bloka yeni sətirləri  90% dolana kimi əlavə edəcək və 10% gələcək update-lər üçün saxlayacaq. Oracle Advanced Compression istifadə olunduqdaisə blokun dolmuş hissəsi  PCTFREE ölçüsünə çatdıqda oracle blokun sıxılması işlədir.

Əgər db bloku PCTFREE faizinə kimi dolursa onda, PCTUSED parametrinin dəyərindən aşağı düşməyincə həmin bloka yeni sətrlər insert etmək olmayacaq. PCTUSED parametri blokun sərbəst bloklar siyahısına qayıtması üşün aşağı sərhəddi müəyyən edir. Hər iki parameter birgə təyin olunur. Bu parametrlər index və cədvəl ayaradılan zaman CREATE TABLE və CREATE INDEX konstruksiyasında təyin olunur, həmçinin artıq yaranmış cədvəllər və indexslər üçündə  ALTER TABLE və ALTER INDEX vasitəsilə dəyişdirilə bilər. Bu parametrlərə qiymət verən zaman 2 vacib məhdudiyyəti unutmamaq lazımdır. Birincisi onların cəmi 100 dən böyük olmamalıdır, ikincisi isə PCTFREE parametrinə sıfır qiyməti vermək olmaz ,çünki elə olduqda daxili əməliyyatlar üçün yaddaşın bölüşdürülməsi problem yaranacaq.

Cədvəlin PCTFREE və PCTUSED qiymətinə baxmaq üçün aşağıdakı sorğunu işlədə bilərik.

SELECT pct_free,pct_used FROM user_tables WHERE table_name='TAB1';
PCT_FREE   PCT_USED
----------         ----------
10                   40
pctfree
pctfree

Sadalanmış paametrlərin quraşdırılmasının bir neçə standart varıantını göstərək:
1. Sorğuların çox hissəsi UPDATE-dən ibarət olduqda, yazıların ölçüsü artır. O halda parametrləri aşağıdakı kimi təyin edirk.

PCTFREE = 20
PCTUSED = 40

PCTFREE –yə ona görə 20 qiyməti verilib ki, update zamanı ölçüsü böyüyən yazılar üçün kifayət qədər yer olsun. PCTUSED -in isə standart qiyməti qalmışdır.

2. Sorğular əsasən INSERT və DELETE –dən ibarət olduqda, DELETE operatorları isə normalda yazıların ölçüsün artırmır.
PCTFREE = 5
PCTUSED = 60
PCTFREE –yə ona gorə 5 qiyməti verilib ki, əsasən yazıların uzunluğu dəyişmir. PCTUSED-ə isə ona görə 60 qiyməti verilib ki, əlavə çoxlu sayda db bloklarının ayrılmasın, beləki DELETE operatoru tərəfindən azad olunmuş yaddaş demək olarki həmin an INSERT operatoru tərəfindən istifadə olunur.
3. Cədvəldəki məlumatlar əsasən oxumaq üçün istifadə olunduqda.
PCTFREE = 5
PCTUSED = 90
PCTFREE-ə 5 qiyməti verilib ki UPDATE operatoru az istifadə olunur. PCTUSED-ə isə 90 qiyməti verilmişdir, çünki məlumatların saxlanması üçün blokun böyük bir hissəsi istifadə olunur.Nəticədə istifadə olunan blokların ümumi sayı azalır.

PCTFREE and PCTUSED params


Hər iki parameter db bloklarında yaddaş sahəsinin idarə olunması üçündür. Daha dəqiq PCTFREE və PCTUSED db blokuna sətrlərin insert və update olunması zamanı  boş yaddaş sahəsinin  istifadəsini idarə etmək üçündür. PCTFREE  gələcək updatelər üçün DB blokunda nə qədər yer reserve olunmasını təyin edən blokun yaddaş parametridir. Misal üçün PCTFREE=10 təyin etdikdə, Oracle bloka yeni sətirləri  90% dolana kimi əlavə edəcək və 10% gələcək update-lər üçün saxlayacaq. Oracle Advanced Compression istifadə olunduqdaisə blokun dolmuş hissəsi  PCTFREE ölçüsünə çatdıqda oracle blokun sıxılması işlədir.

Əgər db bloku PCTFREE faizinə kimi dolursa onda, PCTUSED parametrinin dəyərindən aşağı düşməyincə həmin bloka yeni sətrlər insert etmək olmayacaq. PCTUSED parametri blokun sərbəst bloklar siyahısına qayıtması üşün aşağı sərhəddi müəyyən edir. Hər iki parameter birgə təyin olunur. Bu parametrlər index və cədvəl ayaradılan zaman CREATE TABLE və CREATE INDEX konstruksiyasında təyin olunur, həmçinin artıq yaranmış cədvəllər və indexslər üçündə  ALTER TABLE və ALTER INDEX vasitəsilə dəyişdirilə bilər. Bu parametrlərə qiymət verən zaman 2 vacib məhdudiyyəti unutmamaq lazımdır. Birincisi onların cəmi 100 dən böyük olmamalıdır, ikincisi isə PCTFREE parametrinə sıfır qiyməti vermək olmaz ,çünki elə olduqda daxili əməliyyatlar üçün yaddaşın bölüşdürülməsi problem yaranacaq.

Cədvəlin PCTFREE və PCTUSED qiymətinə baxmaq üçün aşağıdakı sorğunu işlədə bilərik.

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SELECT pct_free,pct_used FROM user_tables WHERE table_name='TAB1';
PCT_FREE PCT_USED
---------        - ----------
10                40

[/pcsh]

pctfree
pctfree

Sadalanmış paametrlərin quraşdırılmasının bir neçə standart varıantını göstərək:
1. Sorğuların çox hissəsi UPDATE-dən ibarət olduqda, yazıların ölçüsü artır. O halda parametrləri aşağıdakı kimi təyin edirk.

PCTFREE = 20
PCTUSED = 40

PCTFREE –yə ona görə 20 qiyməti verilib ki, update zamanı ölçüsü böyüyən yazılar üçün kifayət qədər yer olsun. PCTUSED -in isə standart qiyməti qalmışdır.

2. Sorğular əsasən INSERT və DELETE –dən ibarət olduqda, DELETE operatorları isə normalda yazıların ölçüsün artırmır.
PCTFREE = 5
PCTUSED = 60
PCTFREE –yə ona gorə 5 qiyməti verilib ki, əsasən yazıların uzunluğu dəyişmir. PCTUSED-ə isə ona görə 60 qiyməti verilib ki, əlavə çoxlu sayda db bloklarının ayrılmasın, beləki DELETE operatoru tərəfindən azad olunmuş yaddaş demək olarki həmin an INSERT operatoru tərəfindən istifadə olunur.
3. Cədvəldəki məlumatlar əsasən oxumaq üçün istifadə olunduqda.
PCTFREE = 5
PCTUSED = 90
PCTFREE-ə 5 qiyməti verilib ki UPDATE operatoru az istifadə olunur. PCTUSED-ə isə 90 qiyməti verilmişdir, çünki məlumatların saxlanması üçün blokun böyük bir hissəsi istifadə olunur.Nəticədə istifadə olunan blokların ümumi sayı azalır.Hər iki parameter db bloklarında yaddaş sahəsinin idarə olunması üçündür. Daha dəqiq PCTFREE və PCTUSED db blokuna sətrlərin insert və update olunması zamanı  boş yaddaş sahəsinin  istifadəsini idarə etmək üçündür. PCTFREE  gələcək updatelər üçün DB blokunda nə qədər yer reserve olunmasını təyin edən blokun yaddaş parametridir. Misal üçün PCTFREE=10 təyin etdikdə, Oracle bloka yeni sətirləri  90% dolana kimi əlavə edəcək və 10% gələcək update-lər üçün saxlayacaq. Oracle Advanced Compression istifadə olunduqdaisə blokun dolmuş hissəsi  PCTFREE ölçüsünə çatdıqda oracle blokun sıxılması işlədir.

Əgər db bloku PCTFREE faizinə kimi dolursa onda, PCTUSED parametrinin dəyərindən aşağı düşməyincə həmin bloka yeni sətrlər insert etmək olmayacaq. PCTUSED parametri blokun sərbəst bloklar siyahısına qayıtması üşün aşağı sərhəddi müəyyən edir. Hər iki parameter birgə təyin olunur. Bu parametrlər index və cədvəl ayaradılan zaman CREATE TABLE və CREATE INDEX konstruksiyasında təyin olunur, həmçinin artıq yaranmış cədvəllər və indexslər üçündə  ALTER TABLE və ALTER INDEX vasitəsilə dəyişdirilə bilər. Bu parametrlərə qiymət verən zaman 2 vacib məhdudiyyəti unutmamaq lazımdır. Birincisi onların cəmi 100 dən böyük olmamalıdır, ikincisi isə PCTFREE parametrinə sıfır qiyməti vermək olmaz ,çünki elə olduqda daxili əməliyyatlar üçün yaddaşın bölüşdürülməsi problem yaranacaq.

Cədvəlin PCTFREE və PCTUSED qiymətinə baxmaq üçün aşağıdakı sorğunu işlədə bilərik.

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SELECT pct_free,pct_used FROM user_tables WHERE table_name='TAB1';
PCT_FREE PCT_USED
---------        - ----------
10                40

[/pcsh]

pctfree
pctfree

Sadalanmış paametrlərin quraşdırılmasının bir neçə standart varıantını göstərək:
1. Sorğuların çox hissəsi UPDATE-dən ibarət olduqda, yazıların ölçüsü artır. O halda parametrləri aşağıdakı kimi təyin edirk.

PCTFREE = 20
PCTUSED = 40

PCTFREE –yə ona görə 20 qiyməti verilib ki, update zamanı ölçüsü böyüyən yazılar üçün kifayət qədər yer olsun. PCTUSED -in isə standart qiyməti qalmışdır.

2. Sorğular əsasən INSERT və DELETE –dən ibarət olduqda, DELETE operatorları isə normalda yazıların ölçüsün artırmır.
PCTFREE = 5
PCTUSED = 60
PCTFREE –yə ona gorə 5 qiyməti verilib ki, əsasən yazıların uzunluğu dəyişmir. PCTUSED-ə isə ona görə 60 qiyməti verilib ki, əlavə çoxlu sayda db bloklarının ayrılmasın, beləki DELETE operatoru tərəfindən azad olunmuş yaddaş demək olarki həmin an INSERT operatoru tərəfindən istifadə olunur.
3. Cədvəldəki məlumatlar əsasən oxumaq üçün istifadə olunduqda.
PCTFREE = 5
PCTUSED = 90
PCTFREE-ə 5 qiyməti verilib ki UPDATE operatoru az istifadə olunur. PCTUSED-ə isə 90 qiyməti verilmişdir, çünki məlumatların saxlanması üçün blokun böyük bir hissəsi istifadə olunur.Nəticədə istifadə olunan blokların ümumi sayı azalır.