На первую VAKANSII.com.ua
   На первую VAKANSII.com.ua  На первую VAKANSII.com.ua
СЕГОДНЯ НА САЙТЕ:  162 ВАКАНСИЙ. НОВЫХ - 19 Интернет
  47262 РЕЗЮМЕ. НОВЫХ - 14 Если не работает
 Сайт газеты

  • Страхования
  • Фехтование
  • Инвестирование
  • ПротивоГАЗы
  • Как авто
  • Респираторы
  • Средства пожаротушения
  • Новости
  • Заказ курсовой работы недорого

    Есть затруднения со сдачей курсовой работы точно и в срок? Вы можете заказать курсовую работу от kursoviks.com.ua заказ дипломной работы или курсовой проект по недорогой цене.

    Статьи

    Проектування індексів для оптимізації запитів в Microsoft SQL Server

    1. Загальні рекомендації з проектування індексів в Microsoft SQL Server
    2. Рекомендації з проектування індексів з метою оптимізації запитів

    Як відомо для оптимізації запитів в базі даних використовуються індекси, але для того щоб максимально ефективно використовувати ці індекси їх необхідно правильно спроектувати, тому сьогодні ми з Вами розглянемо загальні рекомендації з проектування індексів в СУБД Microsoft SQL Server, які допоможуть Вам значно поліпшити продуктивність SQL запитів і додатків в цілому.

    Раніше в матеріалі « Основи індексів в Microsoft SQL Server »Ми з Вами дізналися, що ж таке індекси і які вони бувають, а зараз ми з Вами навчимося правильно проектувати ці індекси, щоб досягти максимальної продуктивності SQL запитів.

    Загальні рекомендації з проектування індексів в Microsoft SQL Server

    • Одним з найефективніших індексів є індекс для цілочисельних стовпців, які мають унікальні значення, тому по можливості створюйте індекси для таких стовпців;
    • Якщо таблиця дуже інтенсивно оновлюється, то не рекомендується створювати велику кількість індексів, так як це знижує продуктивність інструкцій INSERT, UPDATE, DELETE і MERGE. Тому що після змін даних в таблиці SQL сервер автоматично вносить відповідні зміни в усі індекси;
    • Якщо таблиця з великим об'ємом даних оновлюється рідко, при цьому вона активно використовується в інструкціях SELECT , Тобто на вибірку даних, то велика кількість індексів може поліпшити продуктивність, так як у оптимізатора запитів буде більший вибір індексів при визначенні найбільш ефективного і швидкого способу доступу до даних;
    • Якщо створювати некластерізованний індекс в файлової групі, яка розташована не на тому диску, на якому розташовані файлові групи таблиці, то це може підвищити продуктивність для великих таблиць і індексів, так як це дозволяє одночасно звертатися до декількох дисках;
    • Для таблиць з невеликим обсягом даних створення індексів зокрема некластерізованних індексів з метою підвищення продуктивності може виявитися абсолютно марно, та ще й витратами на їх підтримку. Так як оптимізатора може знадобитися більше часу на пошук даних в індексі, ніж перегляд даних в самій таблиці. Тому не створюйте індекси для таблиць, в яких дуже мало даних;
    • Кластерізованний індекс необхідно створювати для стовпця, який є унікальним і не приймає значення NULL, також довжина ключа повинна бути невеликою, іншими словами ключ індексу не потрібно складати з декількох стовпців;
    • Якщо уявлення містить агрегати і об'єднання таблиць, то індекси для таких уявлень можуть дати непоганий поліпшення продуктивності.

    Рекомендації з проектування індексів з метою оптимізації запитів

    • Некластерізованний індекси необхідно створювати для всіх стовпців, які часто використовуються в умовах (WHERE) і в об'єднаннях (JOIN);
    • По можливості не варто створювати індекси, в яких дуже багато ключових стовпців, так як це впливає на розмір індексу і на ресурси його підтримки;
    • Ефективно використовувати покривають індекси, тобто індекси які включають всі стовпці, що використовуються в запиті (це називається «Покриттям запиту»). Завдяки цьому оптимізатор запитів може знайти все значення стовпців в індексі, при цьому не звертаючись до даних таблиць, що призводить до меншого числа дискових операцій вводу-виводу. Це можна досягти за допомогою включення в індекс неключових стовпців (включені стовпці), але також слід взяти до уваги, що це тягне за собою збільшення розміру індексу;
    • Якщо є можливість, то рекомендовано замінювати неунікальний індекс унікальним для тієї ж комбінації стовпців, це забезпечує оптимізатора запитів додаткові відомості, що може зробити індекс більш ефективним;
    • При створенні індексу враховуйте порядок ключових стовпців, це підвищує продуктивність індексу. Наприклад, стовпці, які використовуються в реченні WHERE в умовах пошуку рівності (=), більше (>), менше (<) або знаходяться в інтервалі (BETWEEN) або беруть участь в з'єднанні (JOIN), повинні стояти першими. Якщо таких декілька, то упорядковуйте їх за рівнем різних, тобто від найбільш чіткого до найменш чіткому;
    • Спробуйте застосувати відфільтровані індекси для стовпців, що мають точно визначені підмножини, так як в деяких випадках такі індекси можуть збільшити швидкість виконання запиту в порівнянні зі звичайними (полнотаблічнимі) індексами;
    • Також рекомендується проектувати запити на зміну даних так, щоб вони вставляли або змінювали якомога більше рядків однією інструкцією, тобто не використовуйте для тих же операцій кілька запитів.

    Початківцям програмістам рекомендую почитати мою книгу « Шлях програміста T-SQL »Для більш детального вивчення мови T-SQL.

    На цьому у мене все, сподіваюся, матеріал був Вам корисний і цікавий, поки!

    Сподобалася стаття? Поділитися з друзями:

    Сподобалася стаття?

    Новости

    www.natali.ua www.buhgalteria.com.ua www.blitz-press.com.ua  | www.blitz-price.com.ua  | www.blitz-tour.com.ua
     
    Rambler's Top100
     письмо веб-мастеру
    Copyright c 2000, Блиц-Информ