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

Индексы создаются для столбцов таблиц и представлений. Индексы предоставляют путь для быстрого поиска данных на основе значений в этих столбцах. Например, если вы создадите индекс по первичному ключу, а затем будете искать строку с данными, используя значения первичного ключа, то SQL Server сначала найдет значение индекса, а затем использует индекс для быстрого нахождения всей строки с данными. Без индекса будет выполнен полный просмотр (сканирование) всех строк таблицы, что может оказать значительное влияние на производительность.
Вы можете создать индекс на большинстве столбцов таблицы или представления. Исключением, преимущественно, являются столбцы с типами данных для хранения больших объектов (LOB ), таких как image , text или varchar(max) . Вы также можете создать индексы на столбцах, предназначенных для хранения данных в формате XML , но эти индексы устроены немного иначе, чем стандартные и их рассмотрение выходит за рамки данной статьи. Также в статье не рассматриваются columnstore индексы. Вместо этого я фокусируюсь на тех индексах, которые наиболее часто применяются в базах данных SQL Server .
Индекс состоит из набора страниц, узлов индекса, которые организованы в виде древовидной структуры - сбалансированного дерева . Эта структура является иерархической по своей природе и начинается с корневого узла на вершине иерархии и конечных узлов, листьев, в нижней части, как показано на рисунке:


Когда вы формируете запрос на индексированный столбец, подсистема запросов начинает идти сверху от корневого узла и постепенно двигается вниз через промежуточные узлы, при этом каждый слой промежуточного уровня содержит более детальную информацию о данных. Подсистема запросов продолжает двигаться по узлам индекса до тех пор, пока не достигнет нижнего уровня с листьями индекса. К примеру, если вы ищете значение 123 в индексированном столбе, то подсистема запросов сначала на корневом уровне определит страницу на первом промежуточном (intermediate) уровне. В данном случае первой страница указывает на значение от 1 до 100, а вторая от 101 до 200, таким образом подсистема запросов обратится ко второй странице этого промежуточного уровня. Далее будет выяснено, что следует обратиться к третьей странице следующего промежуточного уровня. Отсюда подсистема запросов прочитает на нижнем уровне значение самого индекса. Листья индекса могут содержать как сами данные таблицы, так и просто указатель на строки с данными в таблице, в зависимости от типа индекса: кластеризованный индекс или некластеризованный.

Кластеризованный индекс
Кластеризованный индекс хранит реальные строки данных в листьях индекса. Возвращаясь к предыдущему примеру, это означает что строка данных, связанная со значение ключа, равного 123 будет храниться в самом индексе. Важной характеристикой кластеризованного индекса является то, что все значения отсортированы в определенном порядке либо возрастания, либо убывания. Таким образом, таблица или представление может иметь только один кластеризованный индекс. В дополнение следует отметить, что данные в таблице хранятся в отсортированном виде только в случае если создан кластеризованный индекс у этой таблицы.
Таблица не имеющая кластеризованного индекса называется кучей.
Некластеризованный индекс
В отличие от кластеризованного индекса, листья некластеризованного индекса содержат только те столбцы (ключевые ), по которым определен данный индекс, а также содержит указатель на строки с реальными данными в таблице. Это означает, что системе подзапросов необходима дополнительная операция для обнаружения и получения требуемых данных. Содержание указателя на данные зависит от способа хранения данных: кластеризованная таблица или куча. Если указатель ссылается на кластеризованную таблицу, то он ведет к кластеризованному индексу, используя который можно найти реальные данные. Если указатель ссылается на кучу, то он ведет к конкретному идентификатору строки с данными. Некластеризованные индексы не могут быть отсортированы в отличие от кластеризованных, однако вы можете создать более одного некластеризованного индекса на таблице или представлении, вплоть до 999. Это не означает, что вы должны создавать как можно больше индексов. Индексы могут как улучшить, так и ухудшить производительность системы. В дополнение к возможности создать несколько некластеризованных индексов, вы можете также включить дополнительные столбцы (included column ) в свой индекс: на листьях индекса будет храниться не только значение самих индексированных столбцов, но и значения этих не индексированных дополнительных столбцов. Этот подход позволит вам обойти некоторые ограничения, наложенные на индекс. К примеру, вы можете включить неидексируемый столбец или обойти ограничение на длину индекса (900 байт в большинстве случаев).

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

В дополнение к тому, что индекс может быть либо кластеризованным, либо некластеризованным, возможно его дополнительно сконфигурировать как составной индекс, уникальный индекс или покрывающий индекс.
Составной индекс
Такой индекс может содержать более одного столбца. Вы можете включить до 16 столбцов в индекс, но их общая длина ограничена 900 байтами. Как кластеризованный, так и некластеризованный индексы могут быть составными.
Уникальный индекс
Такой индекс обеспечивает уникальность каждого значения в индексируемом столбце. Если индекс составной, то уникальность распространяется на все столбцы индекса, но не на каждый отдельный столбец. К примеру, если вы создадите уникальных индекс на столбцах ИМЯ и ФАМИЛИЯ , то полное имя должно быть уникально, но отдельно возможны дубли в имени или фамилии.
Уникальный индекс автоматически создается когда вы определяете ограничения столбца: первичный ключ или ограничение на уникальность значений:
  • Первичный ключ
    Когда вы определяете ограничение первичного ключа на один или несколько столбцов, тогда SQL Server автоматически создаёт уникальный кластеризованный индекс, если кластеризованный индекс не был создан ранее (в этом случае создается уникальный некластеризованный индекс по первичному ключу)
  • Уникальность значений
    Когда вы определяете ограничение на уникальность значений, тогда SQL Server автоматически создает уникальный некластеризованный индекс. Вы можете указать, чтобы был создан уникальный кластеризованный индекс, если кластеризованного индекса до сих пор не было создано на таблице
Покрывающий индекс
Такой индекс позволяет конкретному запросу сразу получить все необходимые данные с листьев индекса без дополнительных обращений к записям самой таблицы.

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

Насколько полезны индексы могут быть, настолько аккуратно они должны быть спроектированы. Поскольку индексы могут занимать значительное дисковое пространство, вы не захотите создавать индексов больше, чем необходимо. В дополнение, индексы автоматически обновляются когда сама строка с данными обновляется, что может привести к дополнительным накладным расходам ресурсов и падению производительности. При проектирование индексов должно приниматься во внимание несколько соображений относительно базы данных и запросов к ней.
База данных
Как было отмечено ранее индексы могут улучить производительность системы, т.к. они обеспечивают подсистему запросов быстрым путем для нахождения данных. Однако, вы должны также принять во внимание то, как часто вы собираетесь вставлять, обновлять или удалять данные. Когда вы изменяете данные, то индексы должны также быть изменены, чтобы отразить соответствующие действия над данными, что может значительно снизить производительность системы. Рассмотрим следующие рекомендации при планировании стратегии индексирования:
  • Для таблиц которые часто обновляются используйте как можно меньше индексов.
  • Если таблица содержит большое количество данных, но их изменения незначительны, тогда используйте столько индексов, сколько необходимо для улучшение производительности ваших запросов. Однако хорошо подумайте перед использованием индексов на небольших таблицах, т.к. возможно использование поиска по индексу может занять больше времени, нежели простое сканирование всех строк.
  • Для кластеризованных индексов старайтесь использовать настолько короткие поля насколько это возможно. Наилучшим образом будет применение кластеризованного индекса на столбцах с уникальными значениями и не позволяющими использовать NULL. Вот почему первичный ключ часто используется как кластеризованный индекс.
  • Уникальность значений в столбце влияет на производительность индекса. В общем случае, чем больше у вас дубликатов в столбце, тем хуже работает индекс. С другой стороны, чем больше уникальных значения, тем выше работоспособность индекса. Когда возможно используйте уникальный индекс.
  • Для составного индекса возьмите во внимание порядок столбцов в индексе. Столбцы, которые используются в выражениях WHERE (к примеру, WHERE FirstName = "Charlie" ) должны быть в индексе первыми. Последующие столбцы должны быть перечислены с учетом уникальности их значений (столбцы с самым высоким количеством уникальных значений идут первыми).
  • Также можно указать индекс на вычисляемых столбцах, если они соответствуют некоторым требованиям. К примеру, выражение которые используются для получения значения столбца, должны быть детерминистическими (всегда возвращать один и тот же результат для заданного набора входных параметров).
Запросы к базе данных
Другое соображение которое следует учитывать при проектировании индексов это какие запросы выполняются к базе данных. Как было указано ранее, вы должны учитывать как часто изменяются данные. Дополнительно следует использовать следующие принципы:
  • Старайтесь вставлять или модифицировать в одном запросе как можно больше строк, а не делать это в несколько одиночных запросов.
  • Создайте некластеризованный индекс на столбцах которые часто используются в ваших запросах в качестве условий поиска в WHERE и соединения в JOIN .
  • Рассмотрите возможность индексирования столбцов, использующихся в запросах поиска строк на точное соответствие значений.

А теперь, собственно:

14 вопросов об индексах в SQL Server, которые вы стеснялись задать

Почему таблица не может иметь два кластеризованных индекса?

Хотите короткий ответ? Кластеризованный индекс – это и есть таблица. Когда вы создаете кластеризованный индекс у таблицы, подсистема хранения данных сортирует все строки в таблице в порядке возрастания или убывания, согласно определению индекса. Кластеризованный индекс это не отдельная сущность как другие индексы, а механизм сортировки данных в таблице и облегчения быстрого доступа к строкам с данными.
Представим, что у вас есть таблица, содержащая историю операций по продажам. Таблица Sales включает в себя такую информация как идентификатор заказа, позицию товара в заказе, номер товара, количество товара, номер и дату заказа и т.д. Вы создаёте кластеризованный индекс по столбцам OrderID и LineID , с сортировкой в порядке возрастания, как показано в следующем T-SQL коде:
CREATE UNIQUE CLUSTERED INDEX ix_oriderid_lineid ON dbo.Sales(OrderID, LineID);
Когда вы запустите этот скрипт все строки в таблице будут физически отсортированы сначала по столбцу OrderID, а затем по LineID, но сами данные останутся в единственном логическом блоке, в таблице. По этой причине вы не можете создать два кластеризованных индекса. Может быть только одна таблица с одними данными и эта таблица может быть отсортирована только один раз в определенном порядке.

Если кластеризованная таблица даёт множество преимуществ, то зачем использовать кучу?

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

Как изменить установленное по умолчанию значение коэффициента заполнения индекса?

Изменение установленного по умолчанию коэффициента заполнения индекса это одно дело. Понимание того как установленный по умолчанию коэффициент работает это другое. Но сначала пару шагов назад. Коэффициент заполнения индекса определяет количество пространства на странице для хранения индекса на нижнем уровне (уровень листьев) перед тем как начать заполнять новую страницу. К примеру, если коэффициент выставлен в значение 90, то при росте индекс займет на странице 90%, а затем перейдет на следующую страницу.
По умолчанию, значение коэффициента заполнения индекса в SQL Server равно 0, что равнозначно значению 100. В результате все новые индексы автоматически наследуют эту настройки, если вы специально в коде не укажете отличное от стандартного для системы значения или измените поведение по умолчанию. Вы можете воспользоваться SQL Server Management Studio для корректировки установленного по умолчанию значения или запустить системную сохраненную процедуру sp_configure . К примеру, следующий набор T-SQL команд устанавливает значение коэффициента равное 90 (предварительно необходимо переключится в режим продвинутых настроек):
EXEC sp_configure "show advanced options", 1; GO RECONFIGURE; GO EXEC sp_configure "fill factor", 90; GO RECONFIGURE; GO
После изменения значения коэффициента заполнения индекса необходимо перезагрузить сервис SQL Server . Теперь вы можете проверить установленное значение, запустив процедуру sp_configure без указанного второго аргумента:
EXEC sp_configure "fill factor" GO
Данная команда должна вернуть значение равное 90. В результате все вновь создаваемые индексы будут использовать это значение. Вы можете проверить это, создав индекс и запросить значение коэффициента заполнения:
USE AdventureWorks2012; -- ваша база данных GO CREATE NONCLUSTERED INDEX ix_people_lastname ON Person.Person(LastName); GO SELECT fill_factor FROM sys.indexes WHERE object_id = object_id("Person.Person") AND name="ix_people_lastname";
В данном примере мы создали некластеризованный индекс в таблице Person в базе данных AdventureWorks2012 . После создания индекса мы можем получить значение коэффициента заполнения из системной таблиц sys.indexes. Запрос должен вернуть 90.
Однако, представим, что мы удалили индекс и снова создали его, но теперь указали конкретное значение коэффициента заполнения:
CREATE NONCLUSTERED INDEX ix_people_lastname ON Person.Person(LastName) WITH (fillfactor=80); GO SELECT fill_factor FROM sys.indexes WHERE object_id = object_id("Person.Person") AND name="ix_people_lastname";
В этот раз мы добавили инструкцию WITH и опцию fillfactor для нашей операции создания индекса CREATE INDEX и указали значение 80. Оператор SELECT теперь возвращает соответствующее значение.
До сих пор всё было довольно-таки прямолинейно. Где вы реально можете погореть во всём этом процессе, так это когда вы создаёте индекс, использующий значение коэффициента по умолчанию, подразумевая, что вы знаете это значение. К примеру, кто-то неумело ковыряется в настройках сервера и он настолько упорот, что ставит значение коэффициента заполнения индекса равное 20. Тем временем вы продолжаете создавать индексы, предполагая значение по умолчанию равное 0. К сожалению, у вас нет способа узнать значение коэффициента до тех пор как вы не создадите индекс, а затем проверите значение, как мы делали в наших примерах. В противном случае, вам придётся ждать момента когда производительность запросов настолько упадёт, что вы начнёте что-то подозревать.
Другая проблема о которой вам стоит помнить это перестроение индексов. Как и при создании индекса вы можете конкретизировать значение коэффициента заполнения индекса, когда его перестраиваете. Однако, в отличие от команды создания индекса, перестройка не использует серверные настройки по умолчанию, несмотря на то что так может показаться. Даже больше, если вы конкретно не укажете значение коэффициента заполнения индекса, то SQL Server будет использовать то значение коэффициента, с которым этот индекс существовал до его перестройки. К примеру, следующая операция ALTER INDEX перестраивает только что созданный нами индекс:
ALTER INDEX ix_people_lastname ON Person.Person REBUILD; GO SELECT fill_factor FROM sys.indexes WHERE object_id = object_id("Person.Person") AND name="ix_people_lastname";
Когда мы проверим значение коэффициента заполнения мы получим значение равное 80, потому что именно его мы указали при последнем создании индекса. Значение по умолчанию не учитывается.
Как вы видите изменить значение коэффициента заполнения индекса не такое уж сложно дело. Намного сложнее знать текущее значение и понимать когда оно применяется. Если вы всегда конкретно указывается коэффициент при создании и перестройки индексов, то вы всегда знаете конкретный результат. Разве что вам приходится заботиться о том, чтобы кто-то другой снова не напортачил в настройках сервера, вызвав перестройку всех индексов со смехотворно низким значением коэффициента заполнения индекса.

Можно ли создать кластеризованный индекс на столбце, содержащем дубликаты?

И да, и нет. Да вы можете создать кластеризованный индекс на ключевом столбце, содержащем дубликаты значений. Нет, значение ключевого столбца не смогут остаться в состоянии не уникальности. Позвольте объяснить. Если вы создаёте неуникальный кластерный индекс (non-unique clustered index) на столбце, то подсистема хранения данных добавляет к дублирующему значению целочисленное значение (uniquifier), чтобы удостовериться в уникальности и, соответственно, обеспечить возможность идентифицировать каждую строку в кластеризованной таблице.
К примеру, вы можете решить создать в таблице с данными о клиентах кластеризованный индекс по столбцу LastName , хранящим фамилию. Столбец содержит такие значения как Franklin, Hancock, Washington и Smith. Затем вы вставляете значения Adams, Hancock, Smith и снова Smith. Но значение ключевого столбца обязательно должны быть уникальны, поэтому подсистема хранения данных изменит значение дубликатов таким образом, что они будут выглядеть примерно так: Adams, Franklin, Hancock, Hancock1234, Washington, Smith, Smith4567 и Smith5678.
На первый взгляд такой подход кажется нормальным, но целочисленное значение увеличивает размер ключа, что может стать проблемой при большом количестве дубликатов, а эти значения станут основой некластеризованного индекса или ссылкой внешнего ключа. По этим причинам вы всегда должны стараться создавать уникальный кластеризованный (unique clustered indexes) при любой возможности. Если это невозможно, то по крайней мере постарайтесь использовать столбцы с очень высоким содержание уникальных значений.

Как хранится таблица, если не был создан кластеризованный индекс?

SQL Server поддерживает два типа таблиц: кластеризованные таблицы, имеющие кластеризованный индекс и таблицы-кучи или просто кучи. В отличие от кластеризованных таблиц данные в куче не сортированы никоим образом. По сути это и есть нагромождение (куча) данных. Если вы добавите строку к такой таблице, то подсистема хранения данных просто добавит её к концу страницы. Когда страница заполнится данными, то они будут добавлены на новую страницу. В большинстве случаев, вы захотите создать кластеризованный индекс на таблице, чтобы получить преимущества от возможности сортировки и ускорения запросов (попробуйте представить себе найти телефонный номер в адресной книге, не отсортированной по какому-либо принципу). Однако, если вы решите не создавать кластеризованный индекс, то вы по-прежнему можете создать у кучи некластеризованный индекс. В этом случае каждая строка индекса будет иметь указатель на строку кучи. Указатель включает в себя идентификатор файла, номер страницы и номер строки с данными.

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

Первичный ключ и и ограничение уникальности обеспечивают, что значения в столбце будут уникальны. Вы можете создать только один первичный ключ у таблицы и он не может содержать значения NULL . Вы можете создать у таблицы несколько ограничений на уникальность значения и каждый из них может иметь единственную запись с NULL .
Когда вы создаете первичный ключ, подсистема хранения данных так же создает уникальный кластеризованный индекс, в случае если уже кластеризованный индекс не был создан. Однако, вы можете переопределить установленное по умолчанию поведение и тогда будет создан некластеризованный индекс. Если кластеризованный индекс существует когда вы создаёте первичный ключ, то будет создан уникальный некластеризованный индекс.
Когда вы создаете ограничение на уникальность, подсистема хранения данных создает уникальный некластеризованный индекс. Но вы можете указать создание уникального кластеризованного индекса, если он не был создан ранее.
В общем случае, ограничение на уникальность значение и уникальный индекс это одно и то же.

Почему в SQL Server кластеризованные и некластеризованные индексы называются сбалансированным деревом?

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


Корневой узел предоставляет главную точку входа для запросов, пытающихся получить данные через индекс. Начиная с этого узла, подсистема запросов инициирует переход по иерархической структуре вниз к подходящему конечному узлу, содержащему данные.
К примеру, представим, что поступил запрос на выборку строк, содержащих значение ключа равное 82. Подсистема запросов начинает работу с корневого узла, который отсылает к подходящему промежуточному узлу, в нашем случае 1-100. От промежуточного узла 1-100 происходит переход к узлу 51-100, а оттуда к конечному узлу 76-100. Если это кластеризованный индекс, то на листе узла содержится данные строки, ассоциированной с ключом равным 82. Если же это некластеризованный индекс, то лист индекса содержит указатель на кластеризованную таблицу или конкретную строку в куче.

Как вообще индекс может улучшить производительность запросов, если приходится переходить по всем этим индексным узлам?

Во-первых, индексы не всегда улучшают производительность. Слишком много неверно созданных индексов превращают систему в болото и понижают производительность запросов. Правильнее сказать, что если индексы были аккуратно применены, то они могут обеспечить значительный прирост в производительности.
Подумайте об огромной книге, посвященной настройке производительности SQL Server (бумажной, не об электронном варианте). Представьте, что вы хотите найти информацию о конфигурировании Регулятора ресурсов . Вы можете водить пальцем постранично через всю книгу или открыть содержание и узнать точный номер страницы с искомой информацией (при условии, что книга правильно проиндексирована и в содержании верные указатели). Безусловно, это сэкономит вам значительное время, не смотря на то, что вам надо сначала обратиться к совершенно другой структуре (индексу), чтобы получить необходимую вам информацию из первичной структуры (книги).
Как и книжный указатель, указатель в SQL Server позволяет вам выполнять точные запросы к нужным данным вместо полного сканирования всех данных, содержащихся в таблице. Для маленьких таблиц полное сканирование обычно не проблема, но большие таблицы занимают много страниц с данными, что в результате может привезти с значительному времени выполнения запроса, если не существует индекса, позволяющего подсистеме запросов сразу получить правильное месторасположение данных. Представьте, что вы заблудились на многоуровневой дорожной развязке перед крупным мегаполисом без карты и вы поймёте идею.

Если индексы настолько замечательны, то почему бы просто не создать их на каждый столбец?

Ни одно доброе дело не должно оставаться безнаказанным. По крайней мере, именно так и обстоит дело с индексами. Разумеется, индексы отлично себя показывают, пока вы выполняете запросы на выборку данных оператором SELECT , но как только начинается частый вызов операторов INSERT , UPDATE и DELETE , так пейзаж очень быстро меняется.
Когда вы инициируется запрос данных оператором SELECT , подсистема запросов находит индекс, продвигается по его древовидной структуре и обнаруживает искомые данные. Что может быть проще? Но все меняется, если вы инициируете оператор изменения, такой как UPDATE . Да, для первой части оператора подсистема запросов может снова использовать индекс для обнаружения модифицируемой строки – это хорошие новости. И если происходит простое изменение данных в строке, не затрагивающее изменение ключевых столбцов, то процесс изменения пройдет вполне безболезненно. Но что, если изменение приведет к разделению страниц, содержащих данные, или будет изменено значение ключевого столбца, приводящее к переносу его в другой индексный узел – это приведёт к тому, что индексу может потребоваться реорганизация, затрагивающая все связанные индексы и операции, в результате будет повсеместное падение производительности.
Аналогичные процессы происходят при вызове оператора DELETE . Индекс может помочь найти месторасположение удаляемых данных, но само по себе удаление данных может привести к перестановке страниц. Касаемо оператора INSERT , главного врага всех индексов: вы начинаете добавлять большое количество данных, что приводит к изменению индексов и их реорганизации и все страдают.
Так что учитывайте виды запросов к вашей базе данных при размышлениях какой тип индексов и в каком количестве стоит создавать. Больше не значит лучше. Перед тем как добавить новый индекс на таблицу просчитайте стоимость не только базовых запросов, но и объем занимаемого дискового пространства, стоимость поддержания работоспособности и индексов, что может привести к эффекту домино для других операций. Ваша стратегия проектирования индексов один из важнейших аспектов внедрения и должна включать в рассмотрение множество соображений: от размера индекса, количества уникальных значений, до типа поддерживаемых индексом запросов.

Обязательно ли создавать кластеризованный индекс на столбце с первичным ключом?

Вы можете создать кластеризованный индекс на любой столбце, соответствующем необходимым условиям. Это верно, что кластеризованный индекс и ограничение первичного ключа созданы друг для друга и их брак заключен на небесах, так что усвойте факт, что когда вы создаете первичный ключ, тогда же будет автоматически создан кластеризованный индекс, если он не был создан ранее. Тем не менее, вы можете решить, что кластеризованный индекс будет лучше работать в другом месте, и часто ваше решение будет вполне оправданным.
Главная цель кластеризованного индекса это сортировка всех строк к вашей таблице на основе ключевого столбца, указанного при определении индекса. Это обеспечивает быстрый поиск и легкий доступ к данным таблицы.
Первичный ключ таблицы может быть хорошим выбором, потому что он однозначно идентифицирует каждую строку в таблицы без необходимости добавлять дополнительные данные. В некоторых случаях лучшим выбором будет суррогатный первичный ключ, обладающий не только признаком уникальности, но и малым размером, а значения которого увеличиваются последовательно, что делает некластеризованные индексы, основанные на этом значении более эффективными. Оптимизатор запросов также любит такое сочетание кластеризованого индекса и первичного ключа, потому что соединение таблиц происходит быстрее, чем при соединении другим способом, не использующим первичный ключ и ассоциированный с ним кластеризованный индекс. Как я и говорил это брак, заключенный на небесах.
В конце стоит, однако, отметить, что при создании кластеризованного индекса необходимо принять во внимание несколько аспектов: как много некластеризованных индексов будет основываться на нём, как часто будут изменяться значение ключевого столбца индекса и на сколько ни большие. Когда значение в столбцах кластеризованого индекса изменятся или индекс не будет обеспечивать должной производительности, тогда все другие индексы таблицы могут быть задеты. Кластеризованный индекс должен быть основан на наиболее устойчивом столбце, значения которого увеличиваются в определенном порядке, но не изменяются в случайном. Индекс должен поддерживать запросы к наиболее часто используемым данным таблицы, таким образом запросы получают все преимущества того, что данные сортированы и доступны на корневых узлах, листьях индекса. Если первичный ключ соответствует этому сценарию, то используйте его. Если же нет, то выберите другой набор столбцов.

А что если проиндексировать представление, то это по-прежнему будет представление?

Представление – это виртуальная таблица, формирующая данные из одной или нескольких таблиц. По сути, это именованный запрос, который получает данные из нижележащих таблиц, когда вы вызываете запрос к этому представлению. Вы можете улучшить производительность запросов, создав кластеризованных индекс и некластеризованные индексы у этого представления, аналогично как вы создаете индексы у таблицы, но основной нюанс состоит в том, что первоначально создается кластеризованный индекс, а затем вы можете создать некластеризованный.
Когда создается индексированное представление (материализованное представление), тогда само определение представления остается отдельной сущностью. Это, в конце концов, всего лишь жестко прописанный оператор SELECT , хранящийся в базе данных. А вот индекс совсем другая история. Когда вы создаете кластеризованный или некластеризованный индекс у предастваления, то данные физически сохраняются на диск, аналогично обычному индексу. В дополнение, когда в нижележащих таблицах изменяются данные, то индекс представления автоматически изменяется (это означает, что вы можете захотеть избежать индексирования представлений тех таблиц, в которых происходят частые изменения). В любом случае, представление остается представлением - взглядом на таблицы, но именно выполненном в данный момент, с индексами ему соответствующими.
Перед тем как вы сможете создать индекс у представления, оно должно соответствовать нескольким ограничениям. К примеру, представление может ссылаться только на базовые таблицы, но не другие представления и эти таблицы должны находиться в той же самой базе данных. На самом деле там множество других ограничений, так что не забудьте обратиться к документации по SQL Server за всеми грязными подробностями.

Зачем использовать покрывающий индекс взамен составного индекса?

Во-первых, давайте убедимся, что мы понимаем различие между ними. Составной индекс это просто обычный индекс, в который включено больше одного столбца. Несколько ключевых столбцов может использоваться для обеспечения уникальности каждой строки таблицы, также возможен вариант, когда первичный ключ состоит из нескольких столбцов, обеспечивающих его уникальность, или вы пытаетесь оптимизировать выполнение часто вызываемых запросов к нескольким столбцам. В общем, однако, чем больше ключевых столбцов содержит индекс, тем менее эффективна работа этого индекса, а значит составные индексы стоит использовать разумно.
Как было сказано, запрос может извлечь огромную выгоду, если все необходимые данные сразу расположены на листьях индекса, как и сам индекс. Это не проблема для кластеризованного индекса, т.к. все данные уже там (вот почему так важно хорошенько подумать когда вы создаете кластеризованный индекс). Но некластеризованный индекс на листьях содержит только ключевые столбцы. Для доступа ко всем остальным данным оптимизатору запросов необходимы дополнительные шаги, что может вызвать значительные дополнительные накладные расходы для выполнения ваших запросов.
Вот где покрывающий индекс спешит на помощь. Когда вы определяете некластеризованный индекс, то можете указать дополнительные столбцы к вашим ключевым. К примеру, представим, что ваше приложение часто запрашивает данные столбцов OrderID и OrderDate в таблице Sales :
SELECT OrderID, OrderDate FROM Sales WHERE OrderID = 12345;
Вы можете создать составной некластеризованный индекс на обоих столбцах, но столбец OrderDate только добавит накладных расходов на обслуживание индекса, но так и не сможет служить особо полезным ключевым столбцом. Лучшее решение будет это создание покрывающего индекса с ключевым столбцом OrderID и дополнительно включенным столбцом OrderDate :
CREATE NONCLUSTERED INDEX ix_orderid ON dbo.Sales(OrderID) INCLUDE (OrderDate);
При этом вы избегаете недостатков, возникающих при индексации излишних столбцов, в то же время сохраняете преимущества хранения данных на листьях при выполнении запросов. Включенный столбец не является частью ключа, но данные хранятся именно на конечном узле, листе индекса. Это может улучшить производительность выполнения запроса без каких либо дополнительных расходов. К тому же, на столбцы, включенные в покрывающий индекс, накладывается меньше ограничений, нежели на ключевые столбцы индекса.

Имеет ли значение количество дубликатов в ключевом столбце?

Когда вы создаете индекс, вы обязаны постараться уменьшить количество дубликатов в ваших ключевых столбцах. Или более точно: стараться держать коэффициент повторяющихся значений настолько низким, насколько это возможно.
Если вы работаете с составным индексом, то дублирование относится ко всем ключевым столбцам в целом. Отдельный столбец может содержать множество повторяющихся значений, но повторения среди всех столбцов индекса должно быть минимальным. К примеру, вы создаете составной некластеризованный индекс на столбцах FirstName и LastName , вы можете иметь множество значений равных John и множество Doe, но вы хотите иметь как можно меньше значений John Doe, или лучше только одно значение John Doe.
Коэффициент уникальности значений ключевого столбца называется избирательностью индекса. Чем больше уникальных значений, тем выше избирательность: уникальный индекс обладает наибольшей возможной избирательностью. Подсистема запросов очень любит столбцы с высоким значением избирательности, особенно если эти столбцы участвуют в условиях выборки WHERE ваших наиболее часто выполняемых запросов. Чем выше избирательность индекса, тем быстрее подсистема запросов может уменьшить размер результирующего набора данных. Обратной стороной, разумеется, является то, что столбцы с относительно небольшим количеством уникальных значений редко будут хорошими кандидатами на индексирование.

Можно ли создать некластеризованный индекс только для определенного подмножества данных ключевого столбца?

По умолчанию, некластеризованный индекс содержит по одной строке для каждой строки таблицы. Конечно, вы можете сказать то же самое относительно кластеризованного индекса, принимая в расчет, что такой индекс это и есть таблица. Но что касается некластеризованного индекса, то отношение «один к одному» важный концепт, потому что, начиная с версии SQL Server 2008 , у вас есть возможность создать фильтруемый индекс, который ограничивает включенные в него строки. Фильтруемый индекс может улучшить производительность выполнения запросов, т.к. он меньше по размеру и содержит отфильтрованную, более аккуратную, статистику, чем вся табличная - это приводит к созданию улучшенных планов выполнения. Фильтруемый индекс также требует меньше места для хранения и меньших затрат на обслуживание. Индекс обновляется только когда изменяются подходящие под фильтр данные.
В дополнение, фильтруемый индекс легко создать. В операторе CREATE INDEX просто необходимо указать в WHERE условие фильтрации. К примеру, вы можете отфильтровать из индекса все строки, содержащие NULL, как показано в коде:
CREATE NONCLUSTERED INDEX ix_trackingnumber ON Sales.SalesOrderDetail(CarrierTrackingNumber) WHERE CarrierTrackingNumber IS NOT NULL;
Мы можем, фактически, отфильтровать любые данные, которые не важны в критических запросах. Но будьте внимательны, т.к. SQL Server накладывает несколько ограничений на фильтруемые индексы, такие, как невозможность создать фильтруемый индекс у представления, так что внимательно читайте документацию.
Также, может случиться, что вы можно достичь подобных результатов созданием индексированного представления. Однако, фильтруемый индекс имеет несколько преимуществ, таких как возможность уменьшить стоимость обслуживания и улучшить качество ваших планов выполнения. Фильтруемые индексы также допускают перестройку в онлайн-режиме. Попробуйте это сделать с индексируемым представлением.

И снова немного от переводчика

Целью появления данного перевода на страницах Хабрахабра было рассказать или напомнить вам о блоге SimpleTalk от RedGate .
В нём публикуется множество занимательных и интересных записей.
Я не связан ни с продуктами фирмы RedGate , ни с их продажей.

Как и обещал, книги для тех кто хочет знать больше
Порекомендую от себя три очень хорошие книги (ссылки ведут на kindle версии в магазине Amazon ):

В принципе, можно открыть простоиндексы Добавить метки
Microsoft SQL Server 2012 T-SQL Fundamentals (Developer Reference)
Author Itzik Ben-Gan
Publication Date: July 15, 2012
Автор, мастер своего дела, даёт базовые знания о работе с базами данных.
Если вы всё забыли или никогда не знали, то определенно стоит её прочитать

Само слово «индекс» (index) означает показатель. Обычно этот термин используется для некоторой обобщающей характеристики изменений. Например, индекс Доу Джонса, индекс деловой активности, индекс объема промышленного производства и т.д. Гораздо реже термин «индекс» используется как обобщенный показатель состояния, например, известный индекс интеллектуального развития IQ .

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

Во-первых , индексы позволяют измерить изменение сложных явлений (неоднородных статистических совокупностей). Например, нужно определить, как изменились за год расходы жителей г. Луганска на городской транспорт. Для ответа на этот вопрос необходимо знать численность пассажиров, перевезенных за год каждым видом транспорта, рассчитать среднемесячную численность пассажиров или взять точные данные из отчетов по месяцам, умножить численность на тариф перевозки (и число месяцев его действия – в случае использования среднемесячной численности) и полученные величины просуммировать. То же нужно сделать по данным за прошлый год. Затем сопоставить сумму расходов за последний год с суммой за прошлый год. То есть это не просто средние двух чисел, как при расчете, например, темпов динамики или приростов, а получение и сравнение некоторых агрегатированных величин.

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

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

Существует множество определений индекса.

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

Индекс – это показатель, который сочетает в себе качества средних и относительных величин одновременно Обычно их применяют для характеристики сложных совокупностей единиц наблюдения, то есть состоящих из разнородных элементов, непосредственное суммирование которых невозможно в силу их несоизмеримости. Например, в магазине ассортимент товаров состоит из разновидностей, первичный учет которых ведется в натуральных единицах измерения: молоко – в литрах, мясо – в килограммах, консервы – в банках, торты – в штуках, макароны – в пачках и т.д. Для определения общего объема реализации продуктов суммировать данные разнородные товары в натуральных единицах их учета, просто, нельзя, так как результат будет бессмысленным. Для получения обобщающих показателей в сложных статистических совокупностях необходимо применять индексный метод.

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

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

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

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

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

Рис. 13.1. Классификация статистических индексов

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

К объемным показателям относятся:

Физический объем продукции (обозначается буквой ). Выражается в натуральных единицах объема: кг, литры, метры, мешки, банки, ящики;

Объем продукции или услуг (товарооборот), выраженный в стоимостной форме (обозначается буквами ). Выражается в денежной форме: грн., доллар.

К качественным показателям относятся:

Цена продукции или услуг (обозначается буквой ). Выражается в денежной форме: грн., доллар;

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

Затраты на производство продукции (обозначается буквами ). Выражается в денежной форме: грн., доллар.

При вычислении индексов различают сравниваемый уровень (отчетный период), и уровень, с которым производится сравнение, называемый базисным. Если показатель относится к сравниваемому (отчетному) уровню, то индексируемой величине присваивается символ «1 » (например, – цена товара за отчетный период), а если показатель относится к базисному периоду, то индексируемой величине присваивается символ «0 » (например, - объем продукции за базисный период).

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

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

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

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

В статистике индивидуальные индексы принято обозначать буквой «», а общие индексы – буквой «».

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

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

где – индивидуальный индекс объема продукции;

– объем продукции в текущем (отчетном) периоде;

– объем продукции в базисном периоде.

Индивидуальные индексы цены продукции или услуг определяются по формуле:

(13.2)

где – индивидуальный индекс цены продукции;

И – цена продукции в текущем (отчетном) и базисном периодах;

Индивидуальный индекс себестоимости продукции определяется по формуле:

где – индивидуальный индекс себестоимости продукции;

И – себестоимость продукции в текущем (отчетном) и базисном периодах;

Пример . Пусть предприятие во II квартале 2000 года изготовило 100 утюгов, которые реализовало по цене 60 грн. за 1 шт. При этом себестоимость изготовления утюгов равнялась 40 грн. за 1 шт. Во II квартале 2001 года это предприятие изготовило только 90 утюгов и реализовало их по цене 70 грн. за 1 шт. При этом себестоимость производства утюгов достигла 45 грн. за 1 шт.

Вычислим индивидуальные индексы объема, цены и себестоимости производства утюгов.

;;

На данном предприятии во II квартале 2001 г. по сравнению с тем же периодом 2000 г:

объем производства снизился на;

но при этом возросла цена продукции на ;

а себестоимость – возросла на .

Индивидуальные индексы для статистических исследований вычисляются крайне редко, так однородных совокупностей практически не бывает.

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

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

Общий индекс цены.

(13.4)

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

Общий индекс физического объема.

(13.5)

Физический объем является количественным показателем, поэтому соизмерителем берем качественный показатель цены () и его период берем по знаменателю обозначения периода вычисления физического объема () (отношение физического объема в отчетном периоде к базисному )

Общий индекс себестоимости..

(13.6)

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

Общий индекс товарооборота.

(13.7)

Общий индекс затрат на производство.

(13.8)

Рассмотрим индексный метод изучения динамики сложных статистических совокупностей на примерах.

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

Как видно из табл. 13.1, совокупность товаров разнородная (единицы измерения). Определим агрегатный индекс цен.

т.е. цены возросли в целом на 13,9%. В данном примере цена – индексируемый показатель, а объем - вес, взятый за отчетный период.

Таблица 13.1

Реализация товаров

Единица измерения

I период (базисный)

II период (отчетный)

Индивидуальные индексы

Количество товара, ()

Цена за единицу товара, грн., ()

Количество товара, ()

Физического объема,

Можно в качестве весов взять объем и за базисный период. Тогда агрегатный индекс цен будет иметь вид:

т.е. цены возросли на 14,4 % (114,4-100 = 14,4%).

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

Общее правило построения общих индексов.

В исходные данные вводят необходимые буквенные обозначения;

Записывают формулу общего индекса;

Числитель и знаменатель формулы общего индекса расписывают в табличном виде;

Производят промежуточные расчеты;

Результаты вычислений подставляют в формулу общего индекса;

Вычисляют общий индекс и делают выводы.

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

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

Средневзвешенный индекс – это средний из индивидуальных индексов, взвешенных на объемы, имеющие одинаковую размерность и зафиксировнные на неизменном уровне.

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

(13.11)

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

(13.12)

При этом условный товарооборот вычисляется через индивидуальный индекс цен , откуда , а

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

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

Индивидуальные индексы физического объема.

Базисные

Латинское по происхождению слово «index» буквально означает указатель, показатель.

В статистике индекс – это относительная величина, полученная в результате соотношения двух уровней одного явления.

Вместе с тем, не всякая относительная величина может быть названа индексом.

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

Следовательно, относительные величины структуры, интенсивности, координации индексами не являются.

Показатель, изменения которого характеризуется индексом, называется индексируемой величиной.

В статистике при использовании индексного метода применяется своя терминология и символика. Так, каждая индексируемая величина имеет свое обозначение:

q – физический объем продукции, товара (работ, услуг) (количество в натуральном выражении). Слово «физический» означает, что объем продукции, товаров измеряется в единицах, свойственных их физическому состоянию: л, м, м 2 , кг, тонны, шт., пары и т.д.;

p – цена единицы продукции, товара;

p*q = s – стоимость данного вида продукции, товара (объем в стоимостном выражении);

S = Σqp – стоимость всей продукции предприятия, товаров магазина и т.д. (т.е. это могут быть показатели товарной продукции, реализованной продукции, товарооборота и т.д.);

z − себестоимость единицы продукции;

Z = Σ qz – издержки, т.е. себестоимость всей продукции по совокупности (цеху, предприятию и т.п.).

Обозначение самих индексов:

i – индивидуальный индекс, т.е. индекс, который характеризует изменение признака у отдельного элемента изучаемой совокупности.

Так, индекс физического объема определенного продукта (товара):

При построении индексов для обозначения базового значения индексируемой величины используется подстрочечный знак «0», а для обозначения отчетного – «1». Далее можем записать:

− индивидуальный индекс цены;

− индивидуальный индекс себестоимости.

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

Например, индекс стоимости продукции:

либо индекс издержек:

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

Допустим, что товарооборот магазина характеризуется следующими данными (таблица 9.1):

Таблица 9.1 – Динамика товарооборота магазина за май-июнь отчетного года

Получаем индекс товарооборота:

Это означает, что в июне товарооборот увеличился на 12,31 % по сравнению с маем.

Примеры индивидуальных индексов:

Индекс цены для товара А

либо индекс физического объема товара В

Таким образом, общий индекс позволил дать оценку совокупности, отдельные элементы которой несопоставимы.

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

Когда речь идет об индексном методе или индексной теории, в статистике подразумевается под этим построение общих индексов.

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

1) по степени охвата явления (по степени охвата единиц изучаемой совокупности):

Индивидуальные;

Могут быть также и групповые: индекс промышленного производства – общий; индекс производства легкой промышленности – групповой; индекс производства ОАО «КИМ» – индивидуальный.

2) по базе сравнения они могут быть:

Динамические, когда в качестве базы сравнения принимается показатель прошлого периода:

территориальные, когда в качестве базы сравнения выступает другая территория, другие предприятия и т.д., т.е. сравнение в пространстве:

Нормативные, в которых за базу сравнения принимаются плановые или нормативные показатели:

3) по характеру объекта исследования :

Количественные (объемные);

Индексы (в статистике) Индексы в статистике, относительные величины, количественно характеризующие сводную динамику (реже - изменение в пространстве) разносоставной совокупности. Так,

означает, что общий уровень всех розничных цен в государственной торговле СССР в 1964 по сравнению с уровнем их в 1950 был 0,76, или 76% (иначе говоря: взятые в совокупности, эти цены понизились с 1950 по 1964 в среднем на 0,24, или на 24%). Совокупность является разносоставной по данному признаку, если итоговую величину этого признака во всей совокупности прямым, непосредственным суммированием его значений у отдельных единиц вычислить нельзя (например, натуральная величина продукции, состоящей из вещественно разных физических единиц или частей) или если такое суммирование, формально хотя и возможное, приводит к результату, лишённому экономического смысла (например, сумма цен вещественно разных товаров, взятых лишь по одной единице натурального измерения). Четырьмя элементами любого И. являются: а) индексируемая величина; б) тип (форма) И.; в) веса И.; г) сроки исчисления. В зависимости от элемента (а) возможны И. цен, И. физического (натурального) объёма продукции, И. производительности труда и т. д. В зависимости от типа (б) различают И. агрегатные и И. средние, а среди последних, смотря по форме средней, И. средние арифметические, И. средние геометрические, И. средние гармонические и т. д. В зависимости от весов (в) различают И. простые (невзвешенные) и И. взвешенные, а среди последних - И. с постоянными (неизменными) весами и И. с переменными весами (в меру необходимости с течением времени пересматриваемыми). В зависимости от сроков исчисления (г) рассматривают И. базисные (с постоянной, неизменной во времени базой) и И. цепные (если числовые значения индексируемой величины в каждый данный «текущий» срок сопоставляются с их значениями в предшествующий срок; иначе, И. с переменной базой); в общем случае произведение соответствующих цепных И. должно давать базисный И., например

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

себестоимости z товара I за указанное трёхлетие) не есть И., хотя на практике обычно именуется, по аналогии, «индивидуальным И.» (себестоимости).

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

К рудиментарным прообразам И. прибегали уже два столетия (и даже более) тому назад. Так, в 1738 Дюто (Франция) сопоставил суммы цен набора из единиц некоторых товаров и опубликовал их отношение ═в 1764 Дж. Карли (Италия) вычислил примитивный невзвешенный арифметический И. изменения цен трёх товаров (хлеб, вино, оливковое масло) за четверть тысячелетия (с 1500 по 1750); в 1798, независимо от Карли, Дж. Шакберг (Великобритания) стал вычислять таким же способом ═И. оптовых цен десятка товаров, а в 1812 А. Янг (Великобритания) ввёл в этот И. веса (от 1 до 5 для разных товаров). Однако лишь спустя полстолетия (вследствие обесценения серебра и вызванного этим общего роста мировых цен, особенно в 60-х гг.) в Великобритании начались систематическое исчисление и публикация И. оптовых цен. Главные из них: И. журнала «Economist» (с 1869, по формуле ═для 22 товаров; с 1920 - уже для 44 товаров; это старейший из существующих ныне И.) и И. Зауэрбека (с 1886), а затем, как его продолжение, И. журнала «Statist» (для 36 товаров, по той же формуле). В США И. цен был впервые исчислен Н. Бурхардтом в 1881 (за 1824-80). Основы современной теории И. цен были заложены трудами У. Джевонса (Великобритания, 1863 и 1865), Э. Ласпейреса (1871) и Г. Пааше (Германия , 1874). В России первые И. оптовых цен публиковались в серии ежегодников «Свод товарных цен» (за 1890-1915, для 45 товаров, по формуле невзвешенной арифметической средней). Первая мировая война 1914-18 повлекла за собой огромные сдвиги цен на мировом рынке и в народном хозяйстве отдельных государств; для их изучения и измерения потребовались многие новые, до того неизвестные, И. розничных цен, И. «стоимости жизни» впервые в Великобритании, 1918, и в США, 1919) И. физического объёма экономических явлений (элиминировавшие фактор непрерывно меняющихся цен), И. покупательной силы валютных единиц (в связи с крушением мировой системы золотого монометаллизма и попытками заменить валютные курсы «паритетами покупательной силы» валют), различные И. для изучения конъюнктуры и др. Поэтому последнее полустолетие (с 1918) стало новым этапом истории И., отмеченным небывалым развитием индексного метода статистической науки и расширением практики И. В СССР уже с 1918 началось исчисление прожиточного минимума рабочих, перешедшее в 1922 в исчисление бюджетного индекса; в 1919-21 - исчисление и публикация индексов Конъюнктурного института; с августа 1922 - публикация И оптовых цен Госплана. В планово развивающемся народном хозяйстве СССР (а после второй мировой войны 1939-45 и других социалистических государств) потребовалось построение и регулярное исчисление множества новых И., особенно И. плановых заданий и И. степени выполнения плана. 20-е гг., а затем десятилетие 1956-65 были годами, особенно интенсивного развития теории советского индексного метода как одного из мощных познавательных средств современной советской статистики.

Лит.: Немчинов В. С., Сельскохозяйственная статистика с основами общей теории, Избр. произв., т. 2, М., 1967, гл. 19; Суслов И. П., Общая теория статистики, М., 1970; Статистический словарь, М., 1965 [статьи об индексах]; «Уч. зап. по статистике АН СССР», 1955, т. 1; 1959, т. 5; 1963, т. 7; Югенбург С. М., Индексный метод в советской статистике, М., 1958; Перегудов В. Н., Теоретические вопросы индексного анализа, М., 1960; Казинец Л. С., Теория индексов (Основные вопросы), М., 1963; Яновский А. С., Русские индексы, в кн.: Фишер И., Построение индексов, [пер. с англ.], М., 1928 (приложение 6, с. 391-438); Фишер И., Этапы истории индексов, там же (приложение 4, с. 378-81); Четвериков Н. С., Статистические и стохастические исследования, М., 1963, с. 13-56.

Ф. Д. Лившиц.

Большая советская энциклопедия. - М.: Советская энциклопедия . 1969-1978 .

Смотреть что такое "Индексы (в статистике)" в других словарях:

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

    индексы - в статистике (от лат. index — указатель, показатель), относительные величины, характеризующие среднее изменение (во времени или сравнительно в пространстве) сложных совокупностей, состоящих из непосредственно несоизмеримых (несуммируемых)… … Сельское хозяйство. Большой энциклопедический словарь

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

    I в теории чисел, числа, играющие при решении сравнений (См. Сравнение) роль, аналогичную роли логарифмов при решении показательных уравнений. Если р нечётное простое число, g Первообразный корень по модулю р, то И. числа а называется… …

    ИНДЕКСЫ - в статистике (от лат. index указатель, показатель), относит. величины, характеризующие среднее изменение (во времени или сравнительно в пространстве) сложных совокупностей, состоящих из непосредственно несоизмеримых (несуммируемых) элементов.… … Сельско-хозяйственный энциклопедический словарь

    Индексация (от лат. index указатель, список), 1) указатель, реестр имён, названий и т. п. Система условных обозначений (буквенных, цифровых или комбинированных, например библиотечно библиографические. И., издательские И., книготорговые И … Большая советская энциклопедия

    Конъюнктура - (Conjuncture) Конъюнктура это сформировавшийся комплекс условий в определенной области человеческой деятельности Понятие конъюнктуры: виды конъюнктуры, методы прогнозирования конъюнктуры, конъюнктура финансового и товарного рынков Содержание… … Энциклопедия инвестора

    Индекс оптимизма - (Index of optimism) Определение индекса оптимизма, расчет индекса оптимизма Информация об определении индекса оптимизма, расчет индекса оптимизма Содержание Содержание Обозначение Структура и свойства Американский индекс оптимизма Индекс… … Энциклопедия инвестора

    БАРОМЕТРЫ ДЕЛОВОЙ АКТИВНОСТИ - BUSINESS BAROMETERSДанные по отраслям экономики; индексы промышленного производства и торговли; статистические индикаторы состояния деловой активности; фундаментальная и сравнительная статистика деловой активности, на основании к рой проводятся… … Энциклопедия банковского дела и финансов

    Nonfarm Payrolls - (Количество новых рабочих мест вне сельского хозяйства) Nonfarm Payrolls это макроэкономический показатель занятости населения США вне сферы сельского хозяйства Макроэкономический показатель занятости Nonfarm Payrolls, количество рабочих мест вне … Энциклопедия инвестора

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

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

Статистика осуществляет классификацию индексов по следующим признакам:

1. В зависимости от объекта исследования:

  • индексы объемных (количественных) показателей (индексы физического объема: товарооборота, продукции, потребления)
  • индексы качественных показателей (индексы цен, )

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

2. По степени охвата элементов совокупности:

  • индивидуальные индексы (дают сравнительную характеристику отдельных элементов явления)
  • общие индексы (характеризуют изменение совокупности элементов или всего явления в целом)

3. В зависимости от методологии исчисления общие индексы подразделяются на:

  • агрегатные (агрегатные индексы являются основной формой индексов и строятся как агрегаты путем взвешивания индексируемого показателя с помощью неизменной величины другого, взаимосвязанного с ним показателя).
  • средние (являются производными от агрегатных)

4. В зависимости от базы сравнения различают:

  • базисные (если при исчислении индексов за несколько периодов времени база сравнения остается постоянной)
  • цепные (если база сравнения постоянно меняется)

Индексный метод

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

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

Различают два основных вида индексов:
  • простые (частные, индивидуальные);
  • аналитические (общие, агрегатные).

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

И — соответственно сравниваемые состояния какого-либо признака

Во втором случае изучаемый признак используется не изолированно, а в его взаимосвязи с другими признаками.

Поэтому любой аналитический индекс состоит из двух элементов:

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

Аналитические индексы могут быть представлены следующим образом:

где и — весовые признаки

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

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

Информация об объеме и стоимости выпускаемой продукции.

Виды продукции

Количество (штук)

Цена за 1 штуку (рублей)

Стоимость продукции (рублей)

В рассматриваемом примере мы исчислим аналитические индексы , где в качестве индексируемого признака берется объем выпускаемой продукции , а в качестве весового признака — цена за единицу продукции. На основе данных, приведенных в таблице, рассчитаем общий индекс объема продукции:

На полученный нами результат оказали влияние два фактора:

  • изменение количества продукции;
  • изменение цен на продукцию.

Следует отдельно определить:

  • индекс изменения количества (объема) продукции при условии ее оценки в одинаковых ценах;
  • индекс изменения цен на продукцию при условии ее одинакового объема.

Вначале найдем индекс изменения количества продукции:

Затем определим индекс изменения цен на продукцию:

В рассматриваемом примере индекс изменения количества показывает увеличение объема продукции на или на 8 рублей, то есть (123 — 115). Индекс изменения цен свидетельствует о повышении цен на продукцию на , что составляет 10 рублей, то есть (133 — 123).

Если сложить влияние индексов получим общий индекс объема продукции — 18 рублей.

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

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

Индивидуальные индексы

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

В каждом индексе выделяют 3 элемента:

  • индексируемый показатель — это показатель, соотношение уровней которого характеризует индекс
  • сравниваемый уровень — это тот уровень, который сравнивают с другим.
  • базисный уровень — это тот уровень, с которым производится сравнение.

Для расчета индекса необходимо найти отношение сравниваемого уровня к базисному и выразить его в виде коэффициента, если база сравнения приравнивается к единице, или в процентах, если база сравнения принимается за 100%. Обычно расчеты индексов производятся в форме коэффициентов с точностью до третьего знака после запятой, т. е. до 0,001, в форме процентов — до десятых долей процента, т.е. до 0,1%.

Для удобства построения индексов используется специальная символика:

  • i — символ индексируемого показателя — индекс, характеризующий изменение уровня элемента явления.
  • I — с подстрочным индексируемым показателем — для группы элементов или всей совокупности в целом.
  • q — количество проданных товаров или произведенной продукции в натуральном выражении
  • p — цена за единицу товара
  • z — себестоимость единицы продукции
  • w — производительность труда
  • T — отработанное время или численность работников
  • l — средняя заработная плата одного работника
  • 0 — базисный период
  • 1 — отчетный период
Исходные данные Расчетные данные
Товары Базисный
период
Отчетный период Товарооборот млн.руб Индивидуальные индексы
Про-дано
т.шт
Цена за 1 шт.
т.руб
Про-дано
т.шт
Цена за 1 шт.
т.руб
Базисный период Отчетный период Отчетный период по ценам базисного периода Физ. объема т-ооборота Цен Товаро-оборота
А 1 2 3 4 5=1*2 6=3*4 7=3*2 8=3:1 9=4:2 10=6:5
q 0 p 0 q 1 p 1 q 0 * p 0 q 1 * p 1 q 1 * p 0
Телевизоры 400 3 360 3,3 1200 1188 1080 0,9 1,1 0,99
Видео-магнито-фоны 200 2 250 1,8 400 450 500 1,250 0,9 1,125
Итого х х х х 1600 1638 1580 0,9875 1,037 1,024

Индивидуальные индексы характеризуют изменение отдельного элемента явления.

Индивидуальный индекс физического объема товарооборота

Так, для изучения изменения количества проданных товаров (физического объема продаж) следует построить индивидуальный индекс физического объема товарооборота как отношение количества товара одного вида, проданного в отчетном периоде, к количеству того же товара, проданного в базисном периоде (i q = q 1 / q 0 ). Поскольку базисный уровень индексируемого показателя приравнивается к 1 или 100%, то разность между полученным индексом и 1 или 100% характерзиует относительную величину изменения количества проданного товара. По этому индексу можно определить и абсолютное изменение количества проданного товара в натуральном выражении как разность между числителем и знаменателем индекса .

Произведем расчет индивидуальных индексов физического объема товарооборота.

По телевизорам: или 90% и рассчитываем тыс.шт, то есть в отчетном периоде по сравнению с базисным было продано телевизоров на 40 тыс.штук, или на 10% меньше, чем в базисном году.

По видеомагнитофонам: , и рассчитываем тыс.шт, то есть количество проданных видеомагнитофонов возрасло на 50 тыс. штук или на 25% .

Индивидуальный индекс цен

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

Рассчитаем индивидуальные индексы цен (9):

По телевизорам: или 110% и тыс.руб, т.е. цена телевизора увеличилась на 0,3 тыс.руб., или на 10% (110-100).

По видеомагнитофомам: или 90% и тыс.руб т.е. цена видеомагнитофона снизилась на 0,2 тыс.руб или на 10%.

Индивидуальный индекс товарооборота

Индивидуальный индекс товарооборота характеризует изменение товарооборота по одному товару и строится как отношение товарооборота отчетного периода к товарообороту базисного периода , то есть по формуле:

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

Рассчитаем индивидуальные индексы товарооборота (10):

По телевизорам: или 99% и млн.руб, то есть товарооборот по телевизорам стал меньше на 12 млн.руб, или на 1% (99-100%).

По видеомагнитофонам: или 112.5% и млн.руб, то есть товарооборот по видеомагнитофонам увеличился на 50 млн.руб. или на 12,5% (12,5-100%).

Рассмотренные нами индивидуальные индексы взаимосвязаны между собой так же, как сами индексируемые показатели: индекс товарооборота равен произведению индекса физического объема товарооборота на идекс цен, то есть

Проверим взаимосвязь исчисленных индивидуальных индексов:

  • По телевизорам: 0,99 = 0,9*1,1
  • По видеомагнитофонам: 1,125 = 1,25*0,9

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

Так, по телевизорам общее изменение товарооборота составило: млн.руб, то есть товарооборот по телевизорам в отчетном периоде по сравнению с базисным стал меньше на 12 млн.руб. Эта величина может быть разложена на две:

1. за счет изменения количества проданных товаров: млн.руб, то есть за счет уменьшения количества проданных телевизоров на 40 тыс.штук товарооборот стал меньше на 120 млн.руб.

2. за счет изменения цен: млн.руб, то есть за счет роста цены одного телевизора на 0,3 тыс.руб товарооборот возрос на 108 млн.руб.

Проверим взаимосвязь исчисленных показателей: млн.руб.

По видеомагнитофонам имеем изменение товарооборота на 50 млн.руб.

1. за счет изменения количества проданных товаров:

2. за счет изменения цен:

Товарооборот по видеомагнитофонам увеличился на 50 млн.руб. За счет увеличения количества проданных видеомагнитофонов на 50 тыс.штук товарооборот возрос на 100 млн.руб, а за счет снижения цен на видеомагнитофоны на 0,2 тыс.руб за штуку стал меньше на 50 млн.руб.

Общие индексы

Все рассмотренные нами индексы характеризуют относительное изменение уровней отдельных элементов явления и называются индивидуальными индексами.

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

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

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

Так, должен показать изменение количества проданных разнородных товаров , поэтому в числителе его берется отчетное количество товаров (q 1), а в знаменателе — базисное (q 0), т.е. индексируемый показатель изменяется, а взвешивание производится в одних и тех же ценах базисного период (p 0):

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

Рассчитаем агрегатный индекс физического объема товарооборота по данным нашего примера:

Или 98,75% и млн.руб., то есть количество проданных магазином товаров в среднем стало меньше на 1,25% (98,75 — 100%), что привело к уменьшению товарооборота на 20 млн.руб.

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

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

Рассчитаем агрегатный индекс цен по данным нашего примера:

Или 103.7% и млн.руб, то есть в среднем цены на товары возрасли на 3,7%, что привело к росту товарооборота на 58 млн.руб.

В качестве весов в индексах качественных показателей могут быть использованы не только абсолютные объемные показатели, но и показатели их структуры, то есть доли.

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

Агрегатный индекс товарооборота исчисляется по формуле:

Или 102.4% . Разность между числителем и знаменателем этого индекса характеризует абсолютное изменение товарооборота за счет двух фактров: изменения количества проданных товаров и цен на них: млн.руб, то есть товарообот в отчетном периоде по сравнению с базисным увеличился на 38 млн.руб. или на 2,4%.

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

Мы получили систему взаимосвязанных агрегатных индексов, каждый из которых позволяет определить изменение индексируемого показателя в относительном выражении (%). Кроме того, по этим индексам можно определить изменение обобщающего показателя — товарооборота за счет отдельных факторов в абсолютном выражении как разность между числителем и знаменателем соответствующего индекса. Абсолютные показатели изменения товарооборота за счет отдельных факторов взаимосвязаны следующим образом.

Проверим взаимосвязь показателей, исчисленных по данным нашего примера:

1. аграгатных индексов: 1,024 = 0,975*1,037

2. абсолютных изменений: +38 млн.руб = — 20 + 58 млн.руб.

Аналогичным образом строятся системы агрегатных индексов других .

Основные формулы исчисления сводных или общих индексов

Наименование индекса

Формула

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

Что показывает значение индекса, уменьшенное на 100%

Что показывает разность числителя и знаменателя

Индекс физического объема продукции (по цене)

Во сколько раз изменилась стоимость продукции в результате изменения объема ее производства, или сколько процентов составил рост (снижение) стоимости продукции из-за изменения ее физического объема

На сколько процентов изменилась стоимость продукции в результате изменения объема ее производства

На сколько рублей изменилась стоимость продукции в результате роста (уменьшения) объема ее производства

Индекс цен

Во сколько раз изменилась стоимость продукции в результате изменения цен, или сколько процентов составил рост (снижение) стоимости продукции из-за изменения цен

На сколько процентов изменилась стоимость продукции в результате изменения цен

На сколько рублей изменилась стоимость продукции в результате роста (уменьшения) цен

Индекс стоимости продукции (товарооборота)

Во сколько раз изменилась стоимость продукции, или сколько процентов составил рост (снижение) стоимости продукции в текущем периоде по сравнению с базисным

На сколько процентов изменилась стоимость продукции в текущем периоде по сравнению с базисным

На сколько рублей изменилась стоимость продукции в текущем периоде по сравнению с базисным

Индекс физического объема продукции (по себестоимости)

Во сколько раз изменились издержки производства продукции в результате изменения объема ее производства, или сколько процентов составил рост (снижение) издержек производства продукции из-за изменения объема ее производства

На сколько процентов изменились издержки производства продукции в результате изменения объема ее производства

На сколько рублей изменились издержки производства продукции в результате изменения объема ее производства

Индекс себестоимости продукции

Во сколько раз изменились издержки производства продукции в результате изменения себестоимости продукции, или сколько процентов составил рост (снижение) издержек производства продукции из-за изменения себестоимости продукции

На сколько процентов изменились издержки производства продукции в результате изменения себестоимости продукции

На сколько рублей изменились издержки производства продукции в результате изменения себестоимости продукции

Индекс издержек производства

Во сколько раз изменились издержки производства продукции, или сколько процентов составил рост (снижение) издержек производства продукции в текущем периоде по сравнению с базисным

На сколько процентов изменились издержки производства продукции в текущем периоде по сравнению с базисным

На сколько рублей изменились издержки производства продукции в текущем периоде по сравнению с базисным

Индекс физического объема продукции (по трудоемкости)

Во сколько раз изменились затраты времени на производство продукции в результате изменения объема ее производства, или сколько процентов составил рост (снижение) затрат времени на производство продукции из-за изменения ее физического объема

На сколько процентов изменились затраты времени на производство продукции в результате изменения объема ее производства

На сколько человеко-часов изменились затраты времени на производство продукции в результате роста (уменьшения) объема ее производства

Индекс трудоемкости

Во сколько раз изменились затраты времени на производство продукции в результате изменения ее трудоемкости, или сколько процентов составил рост (снижение) затрат времени на производство продукции из-за изменения ее трудоемкости

На сколько процентов изменились затраты времени на производство продукции в результате изменения ее трудоемкости

На сколько человеко-часов изменились затраты времени на производство продукции в результате роста (уменьшения) ее трудоемкости

Индекс затрат времени на производство продукции

Во сколько раз изменились затраты времени на производство продукции, или сколько процентов составил рост (снижение) стоимости продукции в текущем периоде по сравнению с базисным

На сколько процентов изменились затраты времени на производство продукции в текущем периоде по сравнению с базисным

На сколько человеко-часов изменились затраты времени на производство продукции в текущем периоде по сравнению с базисным