На первую 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, Блиц-Информ