Влияние на индекси на изпълнението на 1C Enterprise 8, ускорява 1C
Gilev.ru | Ускоряване на 1C: Enterprise | +7 909 9458594
- Е, ти и запитвания! - каза базата данни и окачени ...
Краткият отговор на въпроса за заглавието е, че заявката ще се изпълни бързо и намаляване на отрицателното въздействие върху изпълнението на ключалката в мултиплейър режим.
Какво е индекс?
Подобно на съдържанието на книгата, индексът в базата данни ви позволява да търсите бързо конкретна информация в таблицата.
Първо, нека да поговорим за индексите в MS SQL Server.
Индексите представляват структура, позволява бърз достъп до таблицата редове въз основа на стойностите на един или повече от неговите колони.
Индексът съдържа ключовете изградени от една или повече колони на таблицата или мнение, както и насоки, които се сравняват с предварително определено място за съхранение на данни.
Индекси намаляват количеството данни, които трябва да бъдат разгледани, за да се върнете резултатен набор.
Въпреки че индексът и свързано с определена графа (или колони) на масата, макар че той е отделен обект в базата данни.
Прости обекти "Индекс" в 1С: Предприятие 8 не.
данни маси индекси, базирани на 1C: Enterprise са създадени по подразбиране, когато създавате конфигурационни обекти, както и в рамките на различни настройки за конфигурация на обектите.
Най-лесния начин за превключване свойства на "Индекс" детайли и измерена стойност "Индекс" и "Индекс да добавите. Подреждане ". Вариант "" Индекс да добавите. Подреждане "" обикновено включва колона "код" или "Името" в индекса.
Друг очевиден начин е възможно да се помисли за добавяне на обекти метаданни в обект на метаданни "критерии за подбор".
Можете да зададете индекс за маса от ценности и за временни таблици, запитвания.
ИЗБЕРЕТЕ
кодът
име
СЛОЖИ VremennayaTablitsa
ОТ Spravochnik.Nomenklatura
Индексирани от кода
Във всеки случай, че е необходимо да се разбере, че става дума за индексите, ние всъщност означава индексите на бази данни, използвани за 1C: Enterprise. Изключения са обекти като стойности за маса, когато индексите са в RAM (RAM).
Физическата същност на индекси в MS SQL Server.
Физически, данните се съхраняват на 8KB страници. Веднага след създаването, докато на масата още няма индекси, масата прилича на купчина (купчина) данни. Записите не разполагат с конкретна поръчка за съхранение.
Когато искате да получите достъп до данните, SQL Server ще изпълни сканиране на маса (маса сканиране). SQL Server сканира цялата таблица, която ще трябва да намерите желания запис.
Това обяснява основните функции на индексите:
- увеличаване на скоростта на достъп,
- подкрепа уникалност данни.
Въпреки предимствата на индексите също има някои недостатъци. Първият от тях - индекси заемат повече място на диска и в паметта. Всеки път, когато се създаде индекс, ви държи ключовете възходящ или низходящ ред, които могат да имат слоеста структура. И колкото по-/ вече ключа, толкова по-голям от размера на индекса. Вторият недостатък - забави вмъкване, обновяване и изтриване на записи.
В MS SQL Server среда предвижда няколко вида индекс:
- без клъстерирани индекси;
- клъстер (или струпани) индекси;
- уникални индекси;
- индекси с включени колони
- индексирани гледания
- Пълен текст
- XML
не-клъстерирани индекс
Non-клъстерирани индекс - не възстанови физическата структура на масата, но само организира препратки към съответния ред.
За идентифициране на правилната линия в индекса на масата nonclustered организира специални знаци, в това число:
- информация за идентификационния номер на файл, в който се съхранява низ;
- ID страница на съответните данни;
- линията броя на тази страница желания;
- съдържание на графи.
Не-скупчени индекси могат да бъдат до известна степен на една и съща маса.
Non-клъстерирани индекс на таблица, която не разполага с клъстери индекс
Non-клъстерирани индекс на масата, която има струпани индекс
Клъстер (клъстерирани) индекс
Основната разлика струпани индекс на индексите на други видове е, че при определяне на физическото местоположение на данните в таблицата се прегрупира в съответствие с индекса структура. Логическата структура на таблицата в този случай представлява речника отколкото индекс. Данните в речника е физически разположена така, по азбучен ред.
Клъстер индекси могат да осигурят значително увеличение на данните за ефективността на търсене, дори и в сравнение с конвенционалните индекси. Повишаване на производителността е особено забележимо при работа с серийни данни. Ако таблицата се определя не-клъстерирани индекс, сървърът първо трябва да прилага по отношение на индекса, и след това намерете реда в таблицата. Ако използвате клъстерирани индекси следващото парче на данни се намира непосредствено след констатираните по-рано данни. Това елиминира ненужните операции, свързани с позоваване на съдържание и търсене за желаните нови редове в таблицата.
Разбира се, само един клъстерирани индекс може да бъде определена в таблицата. А клъстерирани индекс може да включва повече от една колона.
Необходимо е да се избегне създаването на клъстери индекс за често се променят в колони, защото сървърът ще трябва да извърши физическото движение на всички данни, посочени в таблицата, че те са в състояние нареди, както се изисква от струпани индекса. За да се промени в интензитета на колони е най-доброто не-клъстерирани индекс.
Когато създадете първичен ключ в таблицата (първичен ключ), сървърът автоматично създава за него с клъстери индекс, ако тя не е е съществувал или ако определянето не е ключов изрично посочите друг вид индекс.
Когато на масата се определя също така е не-клъстерирани индекс, индексът не се отнася за физическото местоположение на низа в базата данни, и съответния елемент на струпани индекс, който описва тази линия, което позволява да не се преструктурира, които не са струпани индекси всеки път, когато струпани индекс променя физическия ред редове в таблицата.
Уникална индекс
Уникалността на стойностите в индексираната колона предоставя уникални индекси. Ако някой сървър не позволява да вмъкнете нова или промяна на съществуваща стойност, така че в резултат на тази операция, колоната се появи два еднакви ценности.
Уникална индекс е един вид надстройка и може да се прилага и за двете струпани и не-клъстерирани индекс за. Единичната таблицата може да бъде един уникален групирана и не-клъстерирани уникален набор от индекси.
Уникални индекси трябва да се определят само когато е наистина необходимо. За да се гарантира целостта на данните в колоната, може да се определи ограничение UNIQUE или първичен ключ, а не да се прибягва до уникален индекс. Тяхната употреба е само да се гарантира целостта на данните е неразумно загуба на пространство в базата данни. В допълнение, за поддръжка и загубата на време на процесора.
1C: Enterprise 8 се използва активно струпани уникални индекси. Това означава, че можете да получите не грешка уникален индекс.
Концепцията за първична и външен ключ
Първичният ключ (първичен ключ) - набор от колони в таблица, чиито стойности са еднозначно решени низ.
Външният ключ (външен ключ). Тя се нарича външен ключ поле на масата за съхранение на ценности на първичния ключ на друга маса, за да се организира комуникация между тези таблици. Външен ключ в таблицата могат да бъдат съотнесени към този много маса. Такива външни ключове се използват главно за съхранение на дървовидна структура на данните в релационна таблица. Данни на Guide-Bulgaria.com поддържат автоматично почтеност контрол референтна на външни ключове.
1C не използва външни ключове. Референтен цялост осигурява логика на приложението.
ограничения индексни
Индексът може да бъде създаден на базата на няколко области. В този случай, има ограничение - дължината на индекс ключ не трябва да надвишава 900 байта и 16-ключови колони. На практика това означава, че при създаването на индекс, който включва повече от 16 полета, индексът е съкратен. Това може да окаже въздействие върху производителността, когато броят на композитен тип subkonto повече от четири.
Настоящите версии на платформата се прави оптимизация на производството и използва хеш на ключовите области, но е по-бавен от "пълен" индекс.
индексни Статистика
Microsoft SQL Server събира статистика за индекси и полета с данни, съхранявани в базата данни. Тези статистически данни се използват от SQL Server заявка оптимизатор при избора на най-добрия план за изпълнение на заявки за данни за подбор или обновяване.
При създаването на индекс, оптимизатора на заявки автоматично съхранява на колоните индексирани, статистически данни.
индекс фрагментация
Оптимизиране на поставянето на индексите
С обем на таблици не им позволява да "остане" в памет на сървъра, на първо място там скорост диск подсистема (I / O). И вие може да се обърне внимание на възможността то да бъде индекси в отделни файлове на различни твърди дискове.
Подробни стъпки http://technet.microsoft.com/ru-ru/library/ms175905.aspx
Използване на файла с индекс от друга група от не-клъстерирани индекс подобрява производителността поради паралелно изпълнение на I O процеси / и със самия индекс.
За определяне на размерите, посочени по-горе може да използва обработката.
Индексите на влияние заключват
вариацията ефективност
Вече споменахме, в заглавието на статията, че ние се интересуваме от ефекта на индекси на производителността на заявки. По този начин, индекси са най-подходящи за следните видове дейности:
- Исканията, които показват "тесни" на вашите критерии. Тези искания трябва да бъдат прочетени само малък брой линии, които отговарят на определени критерии.
- Заявки, които показват диапазон от стойности. Тези искания трябва също да прочетат малък брой редове.
- Търсене, която се използва в свързването операцията. Колони, които често се използват като основен задължителен, идеални за индексите.
- Търсене, в който данните се прочитат в определен ред. Ако устройството резултат трябва да бъдат сортирани по реда на клъстери индекс, сортирането не е необходимо, тъй като на снимачната площадка резултат вече е предварително подредени. Например, ако един струпани се създава индекс на колони от фамилия (фамилия), FirstName (първо име), и искате да сортирате по фамилия за прилагане и след това по име, не е необходимо да се добави ORDER BY изявление.
Това се отнася и за всички комунални индекси, има една много важна, но - индексът трябва да бъде "ефективно използван" и трябва да бъде в състояние да се намерят данни за използване на по-малко IO и системни ресурси. От друга страна, неизползвани (рядко използвани) кодове за данни по-скоро да се влошат скоростта на запис (защото всяка операция да променя данните също трябва да се актуализира индекса на страница) и да се създаде излишък база обем.
Покритие (за искането) се нарича индекс съдържа всички необходими полета за запитването. Например, ако индексът е създаден на колони А, В и С, както и SELECT заявлението заявки данните от само тези колони, които се нуждаят от достъп само за индекса.
Трябва да влезете, за да публикувате коментар.
Microsoft SQL Server Native Client 10.0: Внимание! Максималната дължина на ключа - 900 байта. Индексът на «_CommonSett_ByKey_SSS» е с максимална дължина от 1152 байта. За комбинация от голям
не могат да се извършват ценности вложки или актуализации.
HRESULT = 80040E2F, HRESULT = 80040E2F, SQLSrvr: SQLSTATE = 23000, състояние = 1, тежест = 10, роден = 1505, ред = 1
SQLSrvr: SQLSTATE = 01000, щат = 1, Тежест = 0, роден = 1945, ред = 1