Sadad Flashcards

1
Q

Table Space

A

یک فضای فیزیکی است که جدول و سایر اشیای پایگاه داده در آن ذخیره می شوند. به
table space
باید مسیر بدهیم که در کجا این
object
ها را ذخیره کند که به آن فضایی که مسیر می دهیم،
container
می گویند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

page size

A

اندازه صفحاتی را که برای
table space یا BufferPool
استفاده می شود، مشخص می کند. انتخاب مناسب
page size
برای اندازه صفحه می‌تواند کارایی سیستم را بهینه کند و باعث پردازش سریع‌تر داده‌ها شود.
هر رکورد باید در یک
page
ساخته شود.
این اندازه می تواند :
4K, 8k, 16k, 32k باشد.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

BufferPool

A

فضایی از
RAM
است که ارجاع به دیسک را کم می کند و داده ها را در آن
Cache می کند.
یعنی بعد از خواندن دیتا از دیسک، داده در
bufferpool
کش می شود تا برای
read
بعدی از
bufferpool خوانده شود.
نکته:
بافرپول، دیتایی را که مستقیم از دیسک میخواند،
sync read
می کند و دیتایی را که مربوط به همان دیتا است را هم می خواند
، Async read می کند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

BufferPool

Clean Pages

A

صفحاتی که در دیسک نوشته شده اند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

BufferPool

Dirty Pages

A

صفحاتی که دیتای آن تغییر کرده است ولی هنوز در دیسک نوشته نشده اند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

syntax

Create BufferPool

A

CREATE BUFFERPOOL BP4kFNDCRD SIZE 5000 PAGESIZE 4096;

PAGESIZE:
اندازه صفحه را مشخص می کند.

SIZE:
تعداد صفحات را مشخص می کند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

انواع Table Space

A

1- Catalog Table Space:
به صورت خودکار بعد از ایجاد دیتابیس ایجاد می شود. جداولی که شامل اطلاعاتی درباره
object
های دیتابیس است مثل
table, view, index , …
را ذخیره می کند.
همان Meta Data
2- Temporary table Space:
شامل
temporary tables
1/ User temporary table space:
این فضا داده هایی را که از طریق دستورات
DECLARE GLOBAL, CREATE GLOBAL
ایجاد می شوند، را نگه داری می کنند.
2/System temporary table space:
این فضا داده های موقتی را برای عملیاتی مثل
join یا sort
نگهداری می کند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

B-Tree:(Balanced Tree)

A

این الگوریتم برای پیاده سازی ایندکس ها استفاده می شود.
Components of B-Tree:
1- Root Node:
گره ی ریشه که نقطه ی شروع درخت و شروع جستجو است.
2- Intermediate Node
شامل کلیدهایی که محدوده مقادیر فرزندانشان را مشخص می کنند.
3-Leaf node:
برگ های درخت که شامل داده های وقعی است و این نودها به همدیگر متصل هستند.
نکته: چون هر برگ به به برگ بعدی و قبلی خود اشاره می کند، پس ارتباط آن ها
linked list
دو طرفه است.
نکته: چون همه ی این
leaf node
ها به هم متصل هستند بنابراین جستجوی بازه ای در این ساختار ممکن و راحت است.
نکته: در هر گره برگ، یک
rid
به هر داده نگاشته شده است. و از این
rid
میتوانیم داده مورد نظرمان را پیدا کنیم.
در واقع
rid
آدرس هر رکورد در دیسک است. و داده را که پیدا کردیم، با این
rid
به رکورد مورد نظرمان می رسیم.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

ارتباط
leaf nodes
با یکدیگر چگونه است؟

A

ارتباط
گره های برگ یا
leaf nodes
با یکدیگر به صورت
linked list
دو طرفه است.
یعنی هر گره ی برگه به گره ی برگ قبلی و بعدی خودش اشاره می کند

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Inverse Scan
in
btree

A

اگر کوئری نیاز به جهت مخالف ذخیره سازی ایندکس داشته باشد، در
btree index
inverse scan
می کند.
چون ارتباط بین برگ های درخت
linked list
دو طرفه است

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

btree index

Page overflow

A

وقتی دیتایی را می خواهیم بین رکوردهای مرتب شده در یک جدول اینزرت کنیم، اگر فضایی برای اینزرت این دیتای جدید وجود نداشته باشد،
page over flow
رخ می دهد. یعنی دیتابیس یک
over flow page
ایجاد می کند و رکورد جدید را در این صفحه اینزرت می کند.
یک
pointer
که به
over flow page
اشاره می کند هم به
parent node
اضافه می کند که اگر در صفحه ی اصلی دیتا را پیدا نکرد، در
over flow page
دنبال آن بگردد.
چالش ها:
1-بار روی دیسک را افزایش می دهد چون ابتدا در صفحه ی اصلی جستجو می کند و اگر داده را پیدا نکرد باید در
over flow page
داده را جستجو کند.
2- کاهش سرعت جستجو

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

btree index

page split

A

اگر برای اینزرت دیتای جدید فضایی در صفحه وجود نداشت،
page split
رخ می دهد.
دیتابیس یک صفحه ی جدید ایجاد می کند و نصف داده های صفحه ی اصلی را به صفحه ی جدید منتقل می کند.
یک
pointer
به
parent node
اضافه می شود تا به صفحه ی جدید اشاره کند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

page over flow & page split

مهم ترین چالش برای این دو موضوع چیست؟

A

صفحه ی جدیدی که ایجاد می شود، ممکن است در کنار صفحه ی اصلی نباشد و اینطوری پرش بین صفحات غیر مجاور رخ دهد و پراکندگی دیتا افزایش می یابد.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

index

Composite Index

A

وقتی روی چندین ستون ایندکس گذاری کنیم.
create index index_name on table_name(A, B)
ابتدا داده ها را بر اساس ستون
A
مرتب می کند و اگر مقادیر در ستون
A
یکسان بود، بر اساس ستون
B
مرتب می کند.
نکته:
بدترین حالت و کارایی این نوع ایندکس زمانی است که فقط روی ستون
B
شرط بگذاریم. چون باید ایتدا تمام مقادیر
A
را جستجو کند تا سپس به مقادیر
B
برسد.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

index

PCTFREE

A

ایندکس درصدی از فضای
page
را برای
insert data, update data
رزرو می کند.
create index index_name
on table_name(column)
PCTFREE 10

10
درصد از
page
را رزرو می کند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

index

table space
for
index

A

به صورت دیفالت اگر
table space
را برای ایندکس مشخص نکنیم، در همان
table space
جدول ساخته می شود.

17
Q

چه زمانی از
table space
دیگری برای ایندکس استفاده می کنیم؟

A

زمانی که جدول بزرگ و لش باشد و زیاد رشد کند
زمانی که فضای
table space
جدول پر شده باشد

18
Q

logging

A

هر دیتابیس لاگ فایل های مربوط به خودش را دارد.
تغییرات دیتابیس در این لاگ فایل ها ذخیره می شود.
دیتابیس از
logging
برای
recovery
استفاده می کند

19
Q

logging types

A

1-Circular Logging:
به صورت دیفالت وقتی دیتابیس ایجاد می شود، این نوع لاگ برایش فعال می شود
اگر لاگ فایل ها پر شوند، دیتابیس در لاگ فایل
overwrite
انجام می دهد.
یعنی دوباره روی لاگ های قدیمی، لاگ های جدید را می نویسد و به صورت حلقه ای این نوشتن لاگ ها را تکرار می کند
در این نوع لاگ فقط می توان
full backup و
offline backup
گرفت
2- Archive Logging:
لاگ فایل ها که پر شدند و تمام
transaction ها
commit
شدند، لاگ فایل ها را
archive
می کند.

20
Q

Active log:
Archive Log:

A

Active log:
لاگ های فعال و تغییرات جدید دیتابیس هستند.
Archive Log:
لاگ های آرشیو شده ی دیتابیس هستند.

21
Q

Connections

max_connection

A

این پارامتر حداکثر تعداد
هایconnection
متصل به یک
instance
را مشخص می کند.

22
Q

Connections

max_appls

A

این پارامتر حدکثر تعداد
connectionهای
متصل به یک دیتابیس را مشخص می کند.

23
Q

connection

connection concentrator

A

به ازای هر
connection
که یک ریکوئست یا کوئری فعال داشته باشد، یک
Agent
به آن
connection
تعلق می گیرد.

24
Q

connection

چه زمانی می فهمیم از
connection concentrator
استفاده کردیم؟

A

وقتی نسبت
max_coordagent

کمتر از

max_connection
باشد، یعنی داریم از
connection concentrator
استفاده می کردیم.

25
Q

Isolaltion level

A

1- Repeatable Read (RR):
وقتی یک دیتایی را می خوانیم، دیتا را قفل می کند و اگر دوباره هم همان دیتا را بخوانیم، همان داده را به ما بر می گرداند.
2- Read Stability (RS):
وقتی یک دیتایی را می خوانیم، اگر آن دیتا تغییر کند و تغییرات کامیت شود، در خواندن دوباره، تغییرات کامیت شده را می بینیم.
3- Cursor Stability (CS):
دیتا را بازه ای می خواند و قفل می کند.
4- Uncommited Read (UR):
تغییرات کامیت نشده ی تراکنش های دیگر هم می توانیم بخوانیم.

26
Q

HADR

High Availability Disaster Recovery

A

وقتی دیتابیس
primary
به هر دلیلی در دسترس نبود و
failed شد
دیتابیس
standby
جایگزین آن می شود

27
Q

HADR

Failover
in
HADR

A

اگر سیستم به صورت خودکار خرابی دیتابیس
primary را
تشخیص داد و به صورت خودکار دیتابیس
Standby
،را جایگزین کرد
failover
اتفاق می افتد.

28
Q

HADR

Takeover
in
HADR

A

اگر به صورت دستی دیتابیس
standby
را جایگزین دیتابیس
primary
بکنیم،
takeover
اتفاق می افتد

29
Q

HADR

قبل از جایگزینی
standby
با
primary
باید سینک دیتابیس
standby
با
primary
انجام شود، این سینک شدن در چند
mode
انجام می گیرد؟

A

IN 4 MODE:
1- Sync:
وقتی یک تراکنش در
primary
انجام شد، ابتدا تغییرات به
standby
ارسال می شود و اگر
primary
از standby
تاییدیه دریافت کرد که تغییرات را در خودش اعمال کرده است، تراکنش را primary
نهایی می شود
2-Near Sync:
اگر تغییراتی که
primary
برای
Standby
ارسال می کند، در بافرپول
standby
بنشیند، تراکنش در
primary
نهایی می شود.
3- Async:
primary
منتظر دریافت تاییدیه از
standby
نمی ماند.
4- Super Async:
standby
هر وقت که بخواهد لاگ تغییرات را دردریافت کرده و پردازش می کند.

30
Q

HADR

peer window

A

مدت زمانی که باید منتظر بماند تا اگر
primary
بالا نیامد،
standby
را جایگزین کند.