Лента новостей

Кредит под залог недвижимости
Необходимость в займе финансовых средств может возникнуть как у частного лица, так и предприятия. Сегодня кредитование не является особенной проблемой и, например, получить кредит под залог недвижимости

Недвижимость
Наша великая Родина богата прекрасными населенными пунктами и городами с удивительной архитектурой и комфортными условиями жизни. Конечно, очень привлекательна в этом плане Новосибирск, который расположен

Недвижимость новая рига
Хотите почувствовать себя королями? Хотя нет, так наверное могут жить только боги недвижимость новая рига. Элитный поселок с замечательной архитектурой, открытым спа, бассейнами, фонтанами. Все находиться

Инвестиции в недвижимость Европы: тенденции 2017 года
Для инвесторов: обзор ключевых рынков европейской недвижимости в 2017 году. Недвижимость в Германии Доля недвижимости Германии в ВВП страны сегодня составляет 9,8%. Недвижимость в Германии отличалась

Дешевая Польская недвижимость
Если по какой-то причине мы решили продать квартиру, безусловно, мы хотим, чтобы это сделать как можно скорее и по лучшей цене. Тем не менее, для этого можно, мы должны быть готовы. Ничто не остановит

«Недвижимость» / Госкорпорации отказано в эффективности
По результатам проверки Счетной палатой деятельности Фонда содействия реформированию жилищно-коммунального хозяйства ( Фонд ЖКХ), площадь аварийного жилья в стране выросла на 1,6 млн. квадратных метров

Лизинг недвижимости
Обычно компании берут аванс - 10-20 % со ставкой удорожания 6-8 %, иногда 10-12% в год на срок от 2 до 10 лет, предлагая различные варианты графиков лизинговых платежей. занимаются примерно десяток компаний

Специалист по недвижимости
Наша компания стремиться дать широкие возможности, удобство в работе без лишних трат всем участникам рынка недвижимости Крыма. Аренда квартир, комнат, коттеджей, продажа в Санкт-Петербурге Гильдия риэлторов

Коммерческие помещения | Жилье, недвижимость > Коммерческие помещения | Киев | SLANET
class="top_line"> id="topnav"> class="subcolumns" id="logonav"> id="nav demo" class="hlist"> id="topnav"> id="header_tab"> id="content"> class="c75l"> class="c25r"> class="subcolumns"> class="c75l">

Юрист по недвижимости
При осуществлении такой юридически сложной и трудоемкой сделки, как покупка или продажа квартиры или участка земли, достаточно часто возникает необходимость обращения за специализированной юридической

Online-курс "Основи APM": Оптимізація продуктивності SQL сервера

Оптимізація буферного кешу

Чому так важливо оптимізувати кеш? Та тому, що при виконанні будь-яких запитів SQL сервер читає дані не з дискової підсистеми, а з буферного кешу. Навіть якщо необхідних даних там немає, спочатку вони будуть завантажені в кеш, а вже потім SQL їх звідти Він візьме, а весь цей час запит буде очікувати.

Оновлення та видалення теж виробляються в кеші, а якийсь час опісля їх вивантажать на диск. Такий механізм дозволяє SQL сервера оптимізувати операції введення / виводу:

  • Кілька сторінок можуть бути прочитані або записані за одне звернення до диска.
  • Сервер може помітити, що для певних операцій запитуються послідовні сторінки, і припустити, що після запиту однієї з них незабаром буде звернення до сусідніх, і заздалегідь завантажити їх в буфер.

Є два індикатори роботи буферного кешу:

MSSQL $ Instance: Buffer Manager \ Buffer cache hit ratio - співвідношення запитаних сторінок, які були знайдені в кеші, до сторінок, яких там не було (і які довелося завантажити з диска). Чим більше це співвідношення, тим більш ефективний кеш. Але слід враховувати, що навіть при великому співвідношенні може бути присутнім ефект перевантаження кеша (cache thrashing).

MSSQL $ Instance: Buffer Manager \ Page Life Expectancy - час життя сторінок в кеші. Вважається, що якщо цей показник більше п'яти хвилин, то це нормально. Якщо значення нижче, то або не вистачає пам'яті, або присутній перевантаження кеша.

Перевантаження кешу часто відбувається при скануванні великої таблиці або індексу. Причина проста: кожна сторінка ськана повинна пройти через кеш, і багато корисних сторінок може бути вивантажено, щоб помістилися сторінки, до яких більше одного разу ніхто не звернеться. Це викликає серйозне навантаження на операції читання і запису, адже корисні сторінки знову будуть завантажуватися з диска в кеш при черговому запиті.

Якщо після аналізу лічильників з'явилася підозра на перевантаження кешу, можна спробувати оптимізувати роботу з кешем. Щоб зрозуміти, які таблиці і індекси займають багато місця в кеші, можна звернутися до sys.dm_os_buffer_descriptors.

SELECT o.name, i.name, bd. *
FROM sys.dm_os_buffer_descriptors bd
INNER JOIN sys.allocation_units a
ON bd.allocation_unit_id = a.allocation_unit_id
INNER JOIN
sys.partitions p
ON (a.container_id = p.hobt_id AND a.type IN (1, 3))
OR (a.container_id = p.partition_id AND a.type = 2)
INNER JOIN sys.objects o ON p.object_id = o.object_id
INNER JOIN sys.indexes i
ON p.object_id = i.object_id AND p.index_id = i.index_id

Після цього проаналізуйте, які з них викликають максимальне навантаження на обмін сторінками з дисковою підсистемою, і що в базі і запитах можна поміняти для поліпшення ситуації.

Пошук «поганих» індексів

Для визначення корисності індексів треба спершу зрозуміти, як сервер використовує наявні індекси. sys.dm_db_index_operational_stats містить інформацію про низькорівневих операціях введення / виводу, блокування, зверненнях для кожного індексу. Цю інформацію можна використовувати для відповіді на питання:

  • Чи є популярні індекси? Чи є боротьба за них? Чи є очікування блокувань?
  • Чи є індекс, який використовується неефективно? Які індекси призводять до вузького місця в роботі з введенням / висновком? page_io_latch_wait_ms покаже, чи були очікування завантаження сторінок індексу в буферний кеш - хороший індикатор сканування індексів.
  • Як застосовуються індекси, які шаблони доступу використовуються?

А за допомогою sys.dm_db_index_usage_stats можна дізнатися, скільки і яких операцій застосовувалося до індексу і коли останній раз була застосований певний тип операції. Це допоможе відповісти на питання:

  • Як користувачі працюють з індексом? Які операції найбільш часто використовуються?
  • Як підтримується і наскільки часто оновлюється індекс?
  • Коли індекс використовувався в останній раз і для чого?

За допомогою різних запитів можна отримувати і уточнювати інформацію про індекси і в кінцевому підсумку отримати кандидатів на оптимізацію. Причому оптимізувати можна і запити, які використовують індекс - починаючи з SQL сервера 2005, ця інформація доступна для будь-якого індексу.

Є різні стратегії оптимізації - правильна архітектура, об'єднання індексів, зміна підтримки. Це один з найскладніших, але і найпродуктивніших аспектів оптимізації, і набагато більш докладно висвітлено на відповідних сайтах і в web-касти.

Не можна розповісти все і відразу, але надана інформація повинна дати хороший старт будь-яким ініціативам в питаннях оптимізації продуктивності SQL сервера.

Команда ALG DevOps Team буде вдячна за Ваші відповіді на наступні питання:

Команда ALG DevOps Team буде вдячна за Ваші відповіді на наступні питання:

Чи є боротьба за них?
Чи є очікування блокувань?
Чи є індекс, який використовується неефективно?
Які індекси призводять до вузького місця в роботі з введенням / висновком?
Як застосовуються індекси, які шаблони доступу використовуються?
Які операції найбільш часто використовуються?
Як підтримується і наскільки часто оновлюється індекс?
Коли індекс використовувався в останній раз і для чого?