для чего используются индексы

Что такое фондовые индексы и зачем они нужны

для чего используются индексы

Каждый хотя бы раз в своей жизни сталкивался с понятием биржевых индексов или, как минимум, слышал о том, что «индексы РТС и ММВБ обновили максимум с апреля». Но что же скрывается за данным понятием, и зачем вообще нужны фондовые индексы? Сегодня мы подробнее рассмотрим этот вопрос.

Что такое индекс

Биржевой индекс — это показатель изменения цен определенной группы ценных бумаг. Можно представить биржевой индекс как «корзину» из акций, объединенных по какому-либо признаку.

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

Зачем нужны индексы

В общем случае, главная цель составления фондового индекса заключается в создании показателя, с помощью которого инвесторы могли бы характеризовать общее направление и «скорость» движения биржевых котировок компаний определенной отрасли.

Изучение динамики индексов помогает участникам биржевых торгов понимать влияние на котировки тех или иных событий — если происходит, к примеру, рост цен на нефть, то, логично ожидать роста котировок всех нефтяных компаний. Однако, акции разных компаний растут с разной скоростью (а какие-то могут и вообще не расти) — индекс помогает понять общий тренд движения сегмента рынка без необходимости оценки положения множества разрозненных компаний.

Сравнение индексов между собой дает понимание как на рынке торгуются разные сектора экономики в сравнении друг с другом.

Немного истории

Первым широко распространенным индексом стал индекс, созданный Чарльзом Доу в 1884 году. Его расчет велся по котировкам 11 самых крупных (и с крупнейшим оборотом акций на бирже) на тот момент транспортных компаний США — индекс так и назывался Dow Jones Transportation Average. В 1896 году появился индекс, который сегодня известен, как Dow Jones Industrial Average, который объединил основные промышленные компании Америки.

для чего используются индексы

Слово «промышленный» (Industrial) в сегодняшних реалиях является не более чем данью традиции, поскольку в сам индикатор уже давно входят компании, не относящиеся напрямую к данной отрасли.

Другой знаменитый индекс — S&P 500 ведет свою историю от первого индекса Standard & Poor’s, который был представлен в 1923 году. В своем нынешнем виде S&P 500 начал жизнь в марте 1957 года — к тому времени технологии позволяли производить расчет индекса в режиме реального времени.

Классификация индексов

Существует множество фондовых индексов, которые созданы для решения конкретных задач. Эти инструменты классифицируются по различным признакам — по методу расчета (взвешивание компонент), семействам и по автору. Рассмотрим каждый тип индексов по порядку.

Методы расчета индексов

Одним из старейших способов расчета индексов является метод среднего арифметического. Несмотря на то, что первоначально знаменитый промышленный индекс Dow Jones Industrial Average рассчитывался именно как среднее взвешенное цен акций, входящих в его список на определенный момент времени, данный способ не очень эффективен, ввиду того, что число акций, выпускаемых компаниями могут отличаться на порядки — одна компания может выпустить миллион акций, а другая — несколько десятков тысяч. Естественно, это не позволит получить сколько-нибудь репрезентативное значение самого индекса.

Делитель для вычисления среднего афифметического первоначально равнялся 11 — числу входивших в индекс акций. Сейчас для расчёта применяют масштабируемое среднее — сумма цен делится на делитель, который изменяется каждый раз, когда входящие в индекс акции подвергаются дроблению или объединению. Это позволяет даже при изменениях в структуре входящих в индекс акций, сохранить возможность их сопоставления.

При всем этом промышленный индекс Доу Джонса по-прежнему сохраняет характер расчета простой средней арифметической — это вытекает из его названия (Industrial Average — промышленная средняя). У подобного метода есть плюсы, главными из которых являются простота расчета и скорость реакции на сильные колебания цен акций, которые случаются, к примеру, во время кризисов на фондовом рынке.

Минусом же является отсутствие весов. Наибольшее влияние на индекс оказывают самые дорогие акции, а изменение цен самых дешевых почти не отражается на его значении. При этом цена самих акций не влияет напрямую на капитализацию компании — у компании, одна акция которой стоит дорого, капитализация может быть меньше, чем у эмитента более дешевой акций (а доходность самих акций может быть даже ниже). По аналогичной схеме рассчитываются индексы семейства Американской фондовой биржи AMEX, а также японский индекс Nikkei 225 Stock Average (публикуется с 1949 года, объединяет 225 акций).

Существуют и индексы, рассчитываемые по формуле средней арифметической взвешенной от темпов роста цен акций — например, сводный индекс Value Line Composite Aithmetic Index (объединяет 1700 акций с NYSE и AMEX). Цена каждой акции, входящей в индекс, умножается на коэффициент, соответствующий ее доле в акционерном капитале компании, которая ее выпустила (так называемый «вес»).

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

Еще одним методом расчета индексом является средняя геометрическая от темпов роста цен акций — к индексам этого типа относится созданный изданием Financial Times индекс FT 30 и Value Line Composite Geometric Index (также объединяет 1700 акций).

Большинство зарубежных и российских фондовых индексов основаны на формуле индекса стоимости — сюда входят индексы семейств NASDAQ, S&P, DAX (Германия), CAC (Франция), индексы РТС и ММВБ.

Купить фьючерсы на российские индексы можно на Московской бирже. Для этого нужно открыть брокерский счет – сделать это можно в режиме онлайн по этой ссылке.

Семейства индексов

Выше мы неоднократно употребляли словосочетание «семейство индексов». Действительно, некоторые составители индексов не ограничиваются одним индексом, а создают целое семейство подобных инструментов.

Одним из самых популярных индикаторов являются индексы, рассчитываемые рейтинговым агентством Standard & Poor’s (S&P). В их число входит главный индекс S&P 500, объединяющий 500 наиболее капитализированных компаний США (80% торгуются на NYSE, 20% — на AMEX). Своим семейством индексов обладает биржа NASDAQ — эти индикаторы учитывают поведение более 4500 американских и зарубежных компаний. В их число входят сводный индекс NASDAQ Composite (объединяет все компании в листинге биржи), NASDAQ National Market (компании из США), а также масса отраслевых индексов.

В Европе заметным семейством индексов являются индикаторы немецкого фондового рынка (DAX 30, Dax Price Index, DAX 100 Sector Indexes и т.п.), французские CAC, отличающиеся по количеству входящих в них акций (40, 80, 120 и т.п.).

На «Московской бирже» также есть семейство индексов — туда входят основные индикаторы ММВБ и РТС, а также индекс голубых фишек, индексы акций второго эшелона и широкого рынка. Помимо этого биржа рассчитывает отраслевые индексы, а также тематические индикаторы: альтернативный индекс «голубых фишек» ММВБ-10, ММВБ-инновации и региональный индекс.

Производители индексов

Еще одним способом классификации индексов является распределение по составителям. Индексы могут быть «агентскими», когда их расчетом занимаются специальные агентства (пример — индексы S&P агентства Standard & Poor’s). Второй вариант — биржевые индексы, созданные, собственно, фондовыми площадками. В США это NASDAQ, а в России два основных биржевых индекса рассчитывались биржами ММВБ и РТС, которые теперь объединились в единую «Московскую биржу».

для чего используются индексы

Помимо этого, составителем индексов может быть и брокерская компания. Например, ITinvest рассчитывает собственные индексы, среди которых есть, к примеру, индексы корреляции (фьючерса на индекс РТС и индекса ММВБ, фьючерса на индекс РТС и индекса S&P 500), которые применяются для торговли фьючерсом на индекс РТС, «склеенные» фьючерсы и другие индикаторы.

Что показывают индексы

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

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

для чего используются индексы

В целом, считается, что движение котировок акций известных и крупных компаний отражает и динамику торгов более мелких финансовых инструментов из той же отрасли (это важное уточнение). Отраслевые биржевые индексы нужны для того, чтобы создавать гипотезы о динамике движения цен разных компаний одной отрасли, даже не попавших в сам индекс. Соответственно, отраслевые индексы помогают инвесторам оценивать перспективность вложений в компании того или иного сектора экономики в конкретный момент времени.

Примеры отраслевых индексов можно хорошо проиллюстрировать семейством Dow Jones, в которое входят:

Существуют также специализированные биржи для компаний, объединенных по тому или иному признаку. Например, биржа высокотехнологичных компаний NASDAQ в США.

Часто индексы составляются и по региональному принципу — например, можно составить списки акций компаний, представляющих определенную страну или группы стран (например, Евросоюза или блоков типа БРИК). Аналогично отраслевым индексам, данные индикаторы помогают инвесторам лучше понимать положение дел на рынках конкретных регионов и стран,

Пример регионального индекса — это семейство индексов Morgan Stanley Capital International (знаменитый среди инвесторов MSCI). Страновые индексы MSCI считают по акциям компаний конкретной страны. Существуют и индексы по отдельным рынкам — развитых и формирующихся. Например, MDCI Developed Market Index включает в себя акции компаний из 24 стран, в которых фондовые рынки признаны развитыми, а MSCI Emerging Market Index, соответственно, включает акции компаний 27 стран, которые относят к развивающимся.

Текущие события

В конце прошлой недели во многих деловых СМИ появилась информация о том, что ведущие мировые индексные провайдеры планируют исключить российские компании из собственных индексов. В частности, как сообщали «Ведомости», один из известнейших составителей индексов, компания MSCI, объявила о запуске целого ряда новых индесксов, не включающих Россию. Сделано это для того, чтобы помочь инвесторам избежать вложений в страну, находящуюся под санкциями Евросоюза и США.

Другой крупнейший провайдер — S&P Dow Jones также заявил о том, что проводит консультации на тему возможного исключения российских компаний.

Опрошенные «Ведомостями» эксперты, в основном, считают подобное решение ударом для российской экономики, поскольку в сложившихся условиях инвесторы не будут вкладываться в отечественные компании.

Однако, главный экономист ITinvest Сергей Егишянц убежден, что не все так страшно:

Смысл [подобных санкций] только один — некоторое количество западных инвестиционных фондов вкладывают деньги не в какие-то специально выбранные ими акции, а в некоторый индекс, куда разработчиками загнаны фирмы по определённому признаку (отрасль, география, статус экономики и т.п.) «Покупка» такого индекса означает, по сути, приобретение акций всех входящих в него компаний в той пропорции, которая для них установлена изготовителем индекса. Соответственно, исключение корпораций из него означает, что теперь эти «индексные» фонды больше не покупают акции означенных корпораций, а то и распродают те, что уже были в их владении.

Т.е. для нашего фондового рынка это попросту очередная волна бегства иностранных денег — причём на сей раз чисто спекулятивных (т.е. не участвующих в процессах в реальной экономики): конечно, это неприятно (рынок падает — хотя не сильно, ибо таких денег тут уже не так и много) — но принципиально даже хорошо, поскольку чем меньше «горячих» глобальных денег, тем меньше амплитуда колебаний рынка при разных потрясениях.

Экономика от подобных кульбитов не страдает вообще никак — в смысле, она попросту не затрагивается этими притоками-оттоками: они все идут мимо реального сектора — и только падение оборотов компаний финансового сектора можно хоть как-то считать негативным последствием для национального хозяйства.

Просто у нас в последние годы доля этого сектора в общем приросте ВВП была весьма велика — он с большим отрывом лидирует: другое дело, что это в основном не брокеры, а банки, раздающие безумное количество потребительских кредитов — хотя и этот процесс уже сворачивается. В общем, ничего страшного не произошло.

Как пользоваться индексами

В общем и целом существование индексом преследует несколько целей. Их можно использовать для:

На сегодня все! Спасибо за внимание, будем рады ответить на вопросы в комментариях.

Источник

Все, что необходимо знать про индексы MS SQL

для чего используются индексы

Предлагаем расширить знания об индексах в MS SQL Server. Получите полное представление о них, преимуществах использования, структуре. Узнаете, как создавать индексы, оптимизировать и удалять. Все самое полезное читайте в одной статье.

Что такое индексы в sql server

Разберемся в понятии индексов (indexes) – это особые таблицы, используемые поисковыми системами для поиска данных. Их активное использование играет важнейшую роль в повышении производительности sql серверов.

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

К примеру, для получения всех страниц в книге, касающихся выбранной тематики, сначала нужно обратиться к перечню тем, а затем выбрать нужные страницы. Для этого следует создать индекс по выбранной теме. На ее основе и будут выбираться ссылки на страницы книги по затронутой теме. Используя значения, заданные первичным ключом, sql server найдет нужный индекс и с его помощью быстро выберет все строки с необходимыми данными. Если не использовать индекс, то для поиска информации будет произведено сканирование каждой строки таблицы. Это значительно понизит производительность и увеличит время поиска.

Благодаря индексу процесс поиска данных сокращается за счет их упорядочивания как физического, так и логического. Таким образом, он выглядит как набор ссылок на данные, которые упорядочены по выбранному столбцу таблицы. Такой столбец называется индексированным. Индексы находятся в таблице и по сути выступают полезными внутренними механизмами системы sql-сервера, которые помогают сделать доступ к данным наиболее оптимальным.

Создать стандартный индекс можно на всех столбцах данных, кроме:

Об индексах и кучах

Как только таблица создана и в ней еще нет индексов, она выглядит как куча данных (Heap). В ней все записи хранятся хаотично, без определенного порядка. Потому их и называют «кучами».

Если в таблице необходимо найти определенные данные, sql server просканирует ее (Table scan). Пока в таблице не заданы индексы, поддерживающие ограничения (UNIQUE CONSTRAINT, UNIQUE INDEX или PRIMARY KEY), сервер прочитает все табличные записи (с первой до последней) и выберет те, которые удовлетворяют условиям поиска.

Это демонстрирует базовые функции indexes:

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

Indexes имеют и недостатки:

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

Структура

Все индексы имеют одинаковую структуру (structure). Они состоят из:

Все они хранятся в виде сбалансированных B-деревьев (B-tree). Начало такого дерева расположено в корневом узле (находящимся на вершине иерархии) и по сути является «входной дверью». Этот узел имеет одну страницу, в которой содержатся указатели на ключи последующих уровней.

В нижней части иерархии расположены листья дерева (являющиеся конечными узлами). Длины веток одинаковы.

В таком дереве сбалансирована каждая ветка. Благодаря внутреннему механизму при любых изменениях в таблице дерево снова становится сбалансированным.

При формировании запроса к индексированному столбцу подсистема начинает процесс поиска с верхнего узла к нижним, проходя промежуточные и обрабатывая их. На каждом уровне располагается все более развернутая информация о запрашиваемых данных. Как только достигается нижний уровень листьев (leaf level) поиск прекращается, т.к. подсистема запросов находит необходимое значение.

Типы индексов

В Microsoft SQL Server используются следующие индексы: кластерные и некластерные. Рассмотрим их подробнее.

Кластерный индекс

Основная его задача — сохранение табличных данных в виде, отсортированном по значению ключа. Таблице или представлению может быть присущ лишь единственный кластеризованный индекс (Clustered index), потому что табличные данные могут отсортировываться в едином возможном порядке – либо возрастания, либо убывания. По возможности, у каждой таблицы должен быть Clustered index.

Табличные данные будут храниться отсортированными лишь в том случае, когда таблица имеет кластеризованный индекс. Строки табличных данных Clustered index хранит в уровнях листьев.

Если у таблицы нет Clustered index, в момент формирования ограничений PRIMARY KEY и UNIQUE, он формируется автоматически. Когда для таблиц/ куч созданы Nonclustered indexes, то в процессе создания Clustered index все некластеризованные должны быть перестроены.

Содержание листьев зависит от того, индекс кластерный или некластерный. Они могут содержать как табличные данные, так и ссылки, указывающие на строки с ними.

Некластерный индекс

Некластеризованными (Nonclustered) называют такие индексы, которые содержат:

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

Он может указывать на:

Nonclustered indexes могут быть расширены дополнительными столбцами (included column). А значит, листья будут сохранять значения индексированных и дополнительных неиндексированных столбцов. Это свойство дает возможность обойти определенные ограничения, возложенные на индекс. Данный подход позволяет включать неиндексируемые столбцы либо обходить ограничения на длину индекса.

Главные свойства Nonclustered indexes:

Nonclustered indexes могут создаваться на любых таблицах, в том числе и имеющих кластерный индекс.

Специальные типы индексов

Существует большое число специальных индексов, которые могут быть как кластерными, так и некластерными. Рассмотрим некоторые из них.

Фильтруемый

Фильтруемым (Filtered) индексом называют оптимизированный Nonclustered index, в котором задействован предикат фильтра для индексации части строк в таблице.

Тщательно спроектированный Filtered index способен:

Составной

Составным называют индекс, который:

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

Создание составных индексов целесообразно, когда:

Отличным примером может служить телефонный справочник. Он сформирован по фамилии и имени, т.к. много людей имеют одинаковую фамилию. Следовательно, логично будет создать индекс одновременно и по фамилии, и по имени.

Отметим, что наивысший приоритет в процессе сортировки принадлежит первым колонкам, описываемым в CREATE INDEX. Потому, в числе первых должны указываться колонки уникальные. Чтобы индекс был задействован при выборке данных в таблице, сам запрос обязательно должен ссылаться именно на колонку, указанную первой.

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

Query Optimizer использует их в зависимости от структуры запроса.

Уникальный

Уникальным (Unique) называют индекс, обеспечивающий уникальное значение всех строк по определенному ключу и гарантирующий, что в ключе индекса не будет значений одинаковых, повторяющихся. Для составного ключа понятие уникальности касается всех index columns, но не распространяется на каждый столбец в отдельности.

Если в таблице формируется Unique index одновременно по ряду столбцов, это означает, что абсолютно каждая вариация значений в ключе будет уникальной.

SQL сервером создается автоматически Unique index для ключевых столбцов при формировании ограничений UNIQUE либо PRIMARY KEY. Но он формируется лишь при выполнении условия отсутствия дублей в ключевых столбцах таблицы.

Уникальный индекс создается автоматом при определении ограничений столбца:

Колоночный

Колоночным (Columnstore) называют индекс, в котором данные хранятся в столбцах. Использование Columnstore indexes наиболее целесообразно применять для крупных хранилищ, т.к. они помогут:

Пространственный

Пространственным (Spatial) называют тип расширенного индекса, позволяющего индексировать столбцы с пространственными данными (представленные в типах Geography или Geometry). Spatial index позволяет наилучшим образом использовать определенные операции запросов относительно пространственных столбцов и может создаваться только для них.

Основное условие создания пространственного индекса – наличие PRIMARY KEY для таблиц.

Полнотекстовый

Полнотекстовые (Full-text) индексы применяются для повышения эффективности поиска определенных слов в строках, где данные представлены в символах.

Действия по созданию и обслуживанию Full-text indexes называются «заполнениями». Встречаются заполнения:

Покрывающий

Покрывающим (Covering) называют индекс, позволяющий на конкретный запрос получать запрашиваемую информацию в полном объеме с листьев индекса, не обращаясь к записям таблицы. А значит, в Covering index хранится достаточный объем данных для полноценного ответа на запрос. Потому нет необходимости обращаться к таблице.

Благодаря тому, что ответ можно получить без использования таблицы, покрывающие индексы быстрее остальных. Однако, они становятся достаточно большими, потому злоупотреблять ими не стоит.

XML-индекс

XML – специфический тип индекса, предназначенный для работы с данными в столбцах таблицы, представленными в соответствующем формате. Он делает более эффективной обработку поисковых запросов к ним.

Индексы, используемые в оптимизированных таблицах

Активно используются специальные индексы для таблиц данных:

Создание и проектирование индексов в ms sql server

Польза индексов очевидна, потому и проектироваться они должны крайне аккуратно. Созданные тщательным образом способны улучшить производительность, а непрофессионально – понизить.

Индексы занимают достаточно много дискового места, потому не имеет смысла создавать их больше, чем нужно. Более того, при каждом обновлении строк, автоматически обновляются и индексы. Это в свою очередь может потребовать увеличения ресурсов и грозить снижением производительности.

Очень важно при проектировании соблюдать ряд требований как к базам данных, так и к запросам направленным к ним.

Базы данных

Как сказано выше, производительность системы напрямую зависит от индексов. При поступлении запроса они могут увеличивать ее, обеспечивая быстрый поиск данных либо снижать, т.к. при каждой операции с данными будут изменяться и они, дабы отражать действия, производимые над данными. И не важно, что происходит с ними – добавление, удаление или обновление.

Потому, при разработке плана стратегии по индексированию, необходимо придерживаться советов специалистов:

Запросы к базе данных

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

Способы создания индексов

Предусмотрено создание индексов ms sql server с помощью двух инструментов. В этом помогут:

Как создать кластеризованный индекс

Как отмечалось выше, создание кластеризованного индекса sql сервером происходит автоматически, когда определенный столбец выбирается в качестве первичного ключа (PRIMARY KEY). Когда такого не происходит, следует создать кластерный индекс своими руками.

Чтобы создать Clustered index воспользуемся Management Studio. Для этого следует:

Результатом действий станет кластерный индекс.

Он может быть создан и с помощью инструкций Transact-SQL CREATRE INDEX.

Как создать некластеризованный индекс

Для создания Nonclustered index можно воспользоваться Management Studio либо инструкциями T-SQL.

Создание Nonclustered index с включенными столбцами

Коснемся вопроса, как создать Nonclustered index с условием, что в индекс включены столбцы, которые не являются ключевыми. Такой индекс принято использовать в тех случаях, когда индекс создается под конкретный запрос. К примеру, чтобы индексом покрывался запрос полностью, т.е. включал все столбцы. Вследствие того, что запрос покрыт, увеличивается производительность. Это становится возможным благодаря тому, что оптимизатор запросов может получить все значения столбцов в индексе без обращения к табличным данным. Это ведет к уменьшению числа операций ввода-вывода на диске.

Однако стоит учитывать, что с включением в индекс неключевых столбцов размер его увеличивается. А значит, для его хранения понадобится больше дискового пространства. Это также может снизить производительность операций INSERT, UPDATE, DELETE и MERGE в базовой таблице данных.

Для его создания также воспользуемся Management Studio:

При необходимости, можно легко создать фильтруемый Nonclustered index. Для этого следует воспользоваться T-SQL и в операторе CREATE NONCLUSTERED INDEX в WHERE указать условие фильтрации. Так можно отфильтровать практически любые данные, не важные в запросах.

Удаление индекса

Пришло время узнать о том, какими способами могут удаляться индексы. Для начала воспользуемся Management Studio. Для этого необходимо:

Удаление индексов выполняется и с помощью инструкций T-SQL DROP INDEX (DROP INDEX IX_NonClustered ON TestTable). Однако ею нельзя воспользоваться для удаления тех индексов, которые создавались через формирование ограничений PRIMARY KEY и UNIQUE. Чтобы удалить их, следует воспользоваться инструкцией ALTER TABLE с предложением DROP CONSTRAINT.

Как выполнить изменение значений коэффициента, который установлен по умолчанию

Чтобы внести изменения в значения коэффициента, которые установлены по умолчанию, следует воспользоваться:

Особенности индексов и условий предложения WHERE

Если предложение WHERE инструкции SELECT содержит условие поиска данных с одним столбцом, то необходимо для него создать индекс. Это условие очень важно при высокой селективности (selectivity) условия.

Но он будет абсолютно бесполезным при постоянном уровне селективности от 80% и выше. Простое сканирование табличных данных потребует меньше времени.

Если в часто применяемом запросе условие поиска включает оператор AND, то лучше всего – создать составной индекс, включив в него сразу все табличные столбцы, которые указывались в предложении WHERE инструкции SELECT.

Оптимизация индексов

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

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

Чтобы понять, какую именно операцию требуется провести – реорганизацию или перестроение, следует выяснить степень фрагментации данных. Она поможет понять, какой способ дефрагментации будет наиболее эффективным и что выбрать.

Чтобы выяснить уровень фрагментации следует воспользоваться системной табличной функцией sys.dm_db_index_physical_stats. Для определения уровня фрагментации всего перечня таблиц для выбранной базы, можете воспользоваться следующим запросом:

SELECT OBJECT_NAME(T1.object_id) AS NameTable,

T1.index_id AS IndexId,

T2.name AS IndexName,

T1.avg_fragmentation_in_percent AS Fragmentation

FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS T1

LEFT JOIN sys.indexes AS T2 ON T1.object_id = T2.object_id AND T1.index_id = T2.index_id

Согласно рекомендациям Microsoft, последующие действия будут зависеть от уровня фрагментации:

Реорганизация индекса

Реорганизацией называют процесс устранения фрагментации индекса. В его ходе происходит дефрагментация конечного уровня кластерных и некластерных индексов по таблицам и представлениям. Говоря простым языком – выполняется простое переупорядочивание страниц. В основе переупорядочивания лежит логический порядок конечных узлов (выполняете слева направо).

Если хотите провести реорганизацию – воспользуйтесь:

Перестроение индекса

Перестроением называется операция по устранению фрагментации индекса. Он заключается в устранении старого и формировании нового.

Перестроение индекс выполняется несколькими способами. В этом поможет:

Это вся полезная информация по индексам в Microsoft SQL Server. Изучайте их, а если возникнут вопросы – задавайте. Удачи в изучении и применении indexes ms sql.

Источник


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *