Що таке безкоштовне очікування буфера в Oracle?
Очікування вільного буфера (%) Ця подія виникає в основному, коли серверний процес намагається прочитати новий буфер у
але занадто багато буферів або закріплені, або забруднені, і тому недоступні для повторного використання. Сеанс надсилає до DBWR, а потім чекає, поки DBWR створить вільні буфери, записуючи брудні буфери на диск.
Буферний кеш бази даних, також званий буферним кешом, — це область пам’яті в системній глобальній області (SGA) примірника бази даних. Він зберігає копії блоків даних, які зчитуються з файлів даних. Буфер є адреса основної пам'яті, в якій диспетчер буферів тимчасово кешує поточний або нещодавно використаний блок даних.
1) Очікування зайнятості буфера може бути викликано багатьма причинами – ви хочете змінити блок і вам він потрібен у поточному режимі, але він є у когось іншого – ви чекаєте. Або вам потрібен блок, якого немає в кеші, але ви помічаєте, що хтось інший його вже читає (читає інший сеанс), тому ви буферизуєте його й чекаєте.
Отримання буфера — це метрика використання ЦП і середніх значень кількість буферів, отриманих для всіх курсорів. Коли Oracle потрібен доступ до блоку даних, спочатку він перевіряє, чи блок даних уже доступний у буфері бази даних. Якщо так, Oracle видає «логічне читання» та отримує блок даних безпосередньо з оперативної пам’яті.
Це очікування відбувається, коли сеанс хоче отримати доступ до блоку бази даних у буферному кеші, але не може, оскільки буфер зайнятий. Інший сеанс змінює блок, і вміст блоку постійно змінюється під час модифікації.
Нижче наведено обмеження на розмір рядка DBMS_OUTPUT і розмір буфера. Максимальний розмір рядка становить 32767 байт. Розмір буфера за замовчуванням становить 20000 байт. Мінімальний розмір становить 2000 байт, а максимальний необмежений.