SlideShare a Scribd company logo
1 of 22
Download to read offline
Индексы в 1С. Влияние на производительность
Индексы в 1С
Влияние на производительность
Индексы в 1С. Влияние на производительность
План вебинара:
Что такое ИНДЕКС
Кластерный и некластерный индексы
Составной и покрывающий индексы
Селективность индекса
Плюсы и минусы индексов
Вопросы для закрепления
Настройка индексов в 1С
Примеры использования индексов в 1С
Полезные ссылки
Индексы в 1С. Влияние на производительность
Таблица-куча - это неупорядоченный набор данных.
Что такое индекс
№ Город Улица Дом
1 Владимир Ленина 4
2 Москва Пушкина 57
3 Смоленск Ломоносова 16
4 Анапа Первая 3
№ Город Улица Дом
1 Абакан Левитана 1
2 Сургут Тургенева 76
3 Судогда Ломоносова 13
4 Кострома Первая 67
№ Город Улица Дом
1 Ярославль Платонова 67
2 Муром Тихонова 43
3 Суздаль Вторая 10
4 Тула Первая 90
№ Город Улица Дом
1 Краснодар Тургенева 34
2 Дзержинск Третья 109
3 Иваново Левая 16
4 Устюг Первая 3
Стр. 1
Стр. 2
Стр. 3
Стр. 4
Страница БД – основная единица, для осуществления операций обмена (ввода-вывода). То есть
минимальная частица данных, которой оперирует сервер СУБД при работе с базами. Физически размер
страницы составляет 8 кб.
Индексы в 1С. Влияние на производительность
Что такое индекс
№ Город
1 Абакан 11
2 Муром 12
№ Город
1 Абакан 111
2 Иваново 112
№ Город
1 Муром 121
2 Сургут 122
№ Город
1 Абакан 3-1
2 Анапа 1-4
3 Владимир 1-1
4 Дзержинск 4-2
№ Город
1 Иваново 4-3
2 Кострома 3-4
3 Краснодар 4-1
4 Москва 1-2
№ Город
1 Муром 2-2
2 Смоленск 1-3
3 Судогда 3-3
4 Суздаль 2-3
№ Город
1 Сургут 3-2
2 Тула 2-4
3 Устюг 4-4
4 Ярославль 2-1
Стр. 11 Стр. 12
Стр. 122Стр. 121Стр. 112Стр. 111
№ Город Улица Дом
1 Владимир Ленина 4
2 Москва Пушкина 57
3 Смоленск Ломоносова 16
4 Анапа Первая 3
{…}
Стр. 1
Корневой уровень
Промежуточный
уровень
Уровень
листьев
Страницы
основной
таблицы
№ Город Улица Дом
1 Краснодар Тургенева 34
2 Дзержинск Третья 109
3 Иваново Левая 16
4 Устюг Первая 3
Стр. 4
Индексы в 1С. Влияние на производительность
Таблица-куча:
Содержит все данные.
Хранит данные в неотсортированном виде
Для поиска требуется последовательно считывать все данные, пока не найдутся нужные.
Очень медленно работает поиск по таблице-куче
Индекс
Содержит данные только определенных полей таблицы.
Хранит данные полей в отсортированном виде в сбалансированном b-дереве поиска.
Для поиска нужных данных достаточно чтения нескольких страниц данных, а не всей таблицы.
Значительно ускоряет процедуру поиска нужных данных.
Для поиска по таблице-куче нужно по городу «Иваново» нужно «просканировать» 4 страницы
данных. При поиске по индексу – только одну нужную страницу данных.
Что такое индекс
Индексы в 1С. Влияние на производительность
Некластерный индекс:
«Листья» содержат ссылки на страницы основной таблицы.
Требуется дополнительное чтение страниц основной таблицы, если нужных полей выборки не
содержится в индексе.
Кластерный индекс:
«Листья» уже содержат страницы основной таблицы.
Не требует дополнительного чтения страниц основной таблицы.
Использование кластерного индекса ускоряет процедуру чтения данных, но усложняет
обслуживание такой таблицы, так как основная таблица записывается в отсортированном
виде.
Большая часть данных в платформе 1С хранится в виде кластеризованной таблицы
Кластерный и некластерный индекс
Индексы в 1С. Влияние на производительность
Некластерный индекс Кластерный индекс
№ Город
1 Абакан 11
2 Муром 12
№ Город
1 Муром 121
2 Сургут 122
Корневой уровень
Промежуточный
уровень
№ Город
1 Сургут 3-2
2 Тула 2-4
3 Устюг 4-4
4 Ярославль 2-1
Уровень листьев
№ Город Улица Дом
1 Краснодар Тургенева 34
2 Дзержинск Третья 109
3 Иваново Левая 16
4 Устюг Первая 3
Страницы
данных
№ Город
1 Абакан 11
2 Муром 12
№ Город
1 Муром 121
2 Сургут 122
Корневой уровень
Промежуточный
уровень
№ Город Улица Дом
1 Краснодар Тургенева 34
2 Дзержинск Третья 109
3 Иваново Левая 16
4 Устюг Первая 3
Листья содержат
данные таблицы
Кластерный и некластерный индекс
Индексы в 1С. Влияние на производительность
Некластерный индекс Кластерный индекс
Кластерный и некластерный индекс
Может быть несколько для одной
таблицы по разным наборам полей
Каждый дополнительный индекс
содержит копию данных основной
таблицы
Таблица данных сортируется по полям
кластерного индекса
Кластерный индекс может быть только один.
Чтения индекса достаточно для получения
любых полей выборки.
Удобны при работе с данными, у которых
значение ключа возрастает. Например, для
документов.
Индексы в 1С. Влияние на производительность
Простой индекс – индекс, состоящий из одного поля
Составной индекс – индекс состоящий из нескольких полей
Составной (и простой) индекс может быть кластерным и некластерным.
Последовательность полей составного индекса имеет значение. Составные индексы по полям
«Город + Улица» и «Улица +Город» – это разные индексы
В составном индексе возможно только последовательное использование полей
Составной и покрывающий индексы
Индексы в 1С. Влияние на производительность
Составной и покрывающий индексы
№ Город Улица
1 Абакан Левитана 11
2 Муром Тихонова 12
№ Город Улица
1 Муром Тихонова 121
2 Сургут Тургенева 122
Корневой уровень
Промежуточный
уровень
№ Город Улица
1 Сургут Тургенева 3-2
2 Тула Первая 2-4
3 Устюг Первая 4-4
4 Яросл
авль
Платонова 2-1
Уровень листьев
Индекс будет использоваться, если отбор
осуществляется по полю «Город» или по
полям «Город+Улица»
Если по «Городу» то «частичное
сканирование».
При отборе по полю «Улица» то индекс
использовать нецелесообразно
Наглядный пример – поиск точки мира на
карте. Сначала мы ищем страну, потом
город, потом улицу и т.д. Нет смысла
сначала искать улицу, потом город
ПОЛЯ ИСПОЛЬЗУЮТСЯ ТОЛЬКО
ПОСЛЕДОВАТЕЛЬНО
Индексы в 1С. Влияние на производительность
Составной и покрывающий индексы
Покрывающий индекс – индекс, который содержит в себе все поля запроса
Выбрать Город, Улица из Справочник.Адреса где Город = "Москва»
Индекс является покрывающим, так как содержит все поля запроса (Город+Улица)
Не требуется подгружать данные из основной таблица, так как поля индекса уже содержать эти данные
Выбрать Город, Дом из Справочник.Адреса где Город = "Москва»
Индекс не является покрывающим, так как содержит НЕ все поля запроса (Город+Улица)
Если индекс не кластерный, то потребуется подгружать страницы с недостающими данными
Индексы в 1С. Влияние на производительность
Показатель селективности = 1/DISTINCT_KEY
DISTINCT_KEY – количество уникальных записей в поле (ключе индекса).
Есть, есть индекс по полю с типом булево, которое может быть иметь только два значения. То
получаем показатель селективности ½ = 0,5 или 50%. Это очень низкая селективность.
Из разных источников. Если показатель селективности выше 10(30)%, то
использование такого индекса только замедляет работу.
Чем ниже показатель селективности, тем эффективнее индекс.
Селективность индекса
Индексы в 1С. Влияние на производительность
Селективность влияет на то, будет ли вообще использоваться индекс
При низкой селективности лучше использовать сканирование
таблицы, чем выборку по индексу
В начало лучше ставить самые селективные (уникальные) и часто
используемые поля
Селективность индекса
Индексы в 1С. Влияние на производительность
Почему поиск по индексу работает быстрее чем, поиск по таблице?
Может ли кластерный индекс быть не покрывающим?
Какая будет селективность индекса по полю ИНН для справочника «Организации», в котором
находиться 5 разных организаций? Есть ли смысл использовать такой индекс? А если это
индекс по коду для справочника «Номенклатура» с 10 000 элементов?
Вопросы
Индексы в 1С. Влияние на производительность
Плюсы и минусы индексов
Значительное ускорение выборки нужных
данных из больших массивов
Сокращение затрат на ресурсы при
использовании покрывающих индексов.
Нет необходимости подгружать ненужные
страницы данных.
Блокировка только нужных записей при
работе с таблицами, и следовательно
высокая параллельность работы
пользователей.
Плюсы Минусы
Индексы занимают дополнительное
место. Бывает, что индексы занимают
больше места, чем сама таблица данных.
Дополнительные затраты на
обслуживание индекса при изменении
данных. Кроме изменения данных самой
таблицы нужно обновлять данные в
индексах.
Требуется периодическое обслуживание
индексов – дефрагментация, обновление
статистики.
Индексы в 1С. Влияние на производительность
Свойство «Индексировать»
Платформа для реквизита документа создала составной индекс «ПолеРеквизита»+ «Ссылка»
Настройка индексов в 1С
Индексы в 1С. Влияние на производительность
Свойство «Индексировать с дополнительным упорядочиванием»
Платформа кроме поля, включает Основное представление объекта.
«ПолеРеквизита» + «ДатаДокумента (для документа)» + «Ссылка» + «ПометкаУдаления (8.3)»
Настройка индексов в 1С
Индексы в 1С. Влияние на производительность
Свойство «Ведущее» у регистра сведений.
Создается индекс аналогично «Индексировать»
Настройка индексов в 1С
Индексы в 1С. Влияние на производительность
Критерий отбора.
Создается индекс в таблице каждого реквизита отбора
Настройка индексов в 1С
Товар табличной части документа
включен в критерий отбора
Платформа создала составной
индекс для табличной части товары
«ТоварСсылка»+»ДокументСсылка»
Индексы в 1С. Влияние на производительность
Основные инструменты сбора плана запроса:
Profiler SQL
Консоль запросов
Технологический журнал
ЦУП
Операторы плана запроса:
«Clustered Index seek» или «Index seek» – поиск по индексу
«Clustered Index scan» или «table scan» – сканирование кластерного индекса или таблицы, что
практически одно и то же.
Индексы в 1С. Влияние на производительность
Индексация временных таблиц
8.2 индекс некластерный составной
8.3 индекс кластерный составной
На практике часто индекс замедляет работу запроса
Когда индекс может не использоваться в условиях
Вычисление
Функции
Вхождение полей в разные списки. Частичное сканирование
Отрицание
ИЛИ
Несоответствие полей индекса и условий запроса
Порядок и содержание полей в условии.
Примеры использования индексов в 1С
Индексы в 1С. Влияние на производительность
Индексы платформы 1С:
«Индексы таблиц базы данных» на ИТС (http://its.1c.ru/db/metod8dev/content/1590/hdoc)
Метод платформы: ПолучитьСтруктуруХраненияБазыДанных()
Основные понятия индексов с примерами:
http://www.sql.ru/articles/mssql/03013101indexes.shtml
Влияние индексов на производительность 1С:предприятие 8
http://www.gilev.ru/index/
http://курсы-по-1с.рф/news/2015-12-21-platform-1c-index
Полезные ссылки

More Related Content

More from Алеся Гарасимович

1С:Документооборот – практичный и эффективный инструмент для управления догов...
1С:Документооборот – практичный и эффективный инструмент для управления догов...1С:Документооборот – практичный и эффективный инструмент для управления догов...
1С:Документооборот – практичный и эффективный инструмент для управления догов...Алеся Гарасимович
 
Отчетность по МФСО в "1С:Управление холдингом"
Отчетность по МФСО в "1С:Управление холдингом"Отчетность по МФСО в "1С:Управление холдингом"
Отчетность по МФСО в "1С:Управление холдингом"Алеся Гарасимович
 
Ключевые моменты подготовки отчетности по МСФО с использованием 1С:Управление...
Ключевые моменты подготовки отчетности по МСФО с использованием 1С:Управление...Ключевые моменты подготовки отчетности по МСФО с использованием 1С:Управление...
Ключевые моменты подготовки отчетности по МСФО с использованием 1С:Управление...Алеся Гарасимович
 
Новые возможности учета НДС в 1С_ERP 2.2
Новые возможности учета НДС в 1С_ERP 2.2Новые возможности учета НДС в 1С_ERP 2.2
Новые возможности учета НДС в 1С_ERP 2.2Алеся Гарасимович
 
Вебинар «Схемы бизнес-процессов в различных нотациях»
Вебинар «Схемы бизнес-процессов в различных нотациях»Вебинар «Схемы бизнес-процессов в различных нотациях»
Вебинар «Схемы бизнес-процессов в различных нотациях»Алеся Гарасимович
 
Финансовый лизинг в МСФО и РСБУ. Методика расчета и отражение в учете
Финансовый лизинг в МСФО и РСБУ. Методика расчета и отражение в учетеФинансовый лизинг в МСФО и РСБУ. Методика расчета и отражение в учете
Финансовый лизинг в МСФО и РСБУ. Методика расчета и отражение в учетеАлеся Гарасимович
 
1С:Управление небольшой фирмой. Новое в версии 1.6.7
1С:Управление небольшой фирмой. Новое в версии 1.6.71С:Управление небольшой фирмой. Новое в версии 1.6.7
1С:Управление небольшой фирмой. Новое в версии 1.6.7Алеся Гарасимович
 
Малоизвестные хитрости работы в Конфигураторе 8.3
Малоизвестные хитрости работы в Конфигураторе 8.3Малоизвестные хитрости работы в Конфигураторе 8.3
Малоизвестные хитрости работы в Конфигураторе 8.3Алеся Гарасимович
 
Основные принципы ведения налогового учета в конфигурациях 1С: Предприятие 8....
Основные принципы ведения налогового учета в конфигурациях 1С: Предприятие 8....Основные принципы ведения налогового учета в конфигурациях 1С: Предприятие 8....
Основные принципы ведения налогового учета в конфигурациях 1С: Предприятие 8....Алеся Гарасимович
 
Комплексная автоматизация процессов управления человеческими ресурсами с испо...
Комплексная автоматизация процессов управления человеческими ресурсами с испо...Комплексная автоматизация процессов управления человеческими ресурсами с испо...
Комплексная автоматизация процессов управления человеческими ресурсами с испо...Алеся Гарасимович
 
Управление мероприятиями в 1С:Документооборот
Управление мероприятиями в 1С:ДокументооборотУправление мероприятиями в 1С:Документооборот
Управление мероприятиями в 1С:ДокументооборотАлеся Гарасимович
 
«1С:Управление небольшой фирмой новые функциональные возможности в 1.6.6 и 1....
«1С:Управление небольшой фирмой новые функциональные возможности в 1.6.6 и 1....«1С:Управление небольшой фирмой новые функциональные возможности в 1.6.6 и 1....
«1С:Управление небольшой фирмой новые функциональные возможности в 1.6.6 и 1....Алеся Гарасимович
 
Вебинар "Управление производством в 1С:ERP с учетом ограниченных производстве...
Вебинар "Управление производством в 1С:ERP с учетом ограниченных производстве...Вебинар "Управление производством в 1С:ERP с учетом ограниченных производстве...
Вебинар "Управление производством в 1С:ERP с учетом ограниченных производстве...Алеся Гарасимович
 
Вебінар "Нові можливості автоматизації бізнесу в програмі 1С:Управління невел...
Вебінар "Нові можливості автоматизації бізнесу в програмі 1С:Управління невел...Вебінар "Нові можливості автоматизації бізнесу в програмі 1С:Управління невел...
Вебінар "Нові можливості автоматизації бізнесу в програмі 1С:Управління невел...Алеся Гарасимович
 
Вебинар "Управление ассортиментом в 1с ерп 2.1"
Вебинар "Управление ассортиментом в 1с ерп 2.1"Вебинар "Управление ассортиментом в 1с ерп 2.1"
Вебинар "Управление ассортиментом в 1с ерп 2.1"Алеся Гарасимович
 
Вебинар "Основные средства – учитываем по новой цене в 1С:Бухгалтерия 3.0"
Вебинар "Основные средства – учитываем по новой цене в 1С:Бухгалтерия 3.0"Вебинар "Основные средства – учитываем по новой цене в 1С:Бухгалтерия 3.0"
Вебинар "Основные средства – учитываем по новой цене в 1С:Бухгалтерия 3.0"Алеся Гарасимович
 

More from Алеся Гарасимович (20)

1С:Документооборот – практичный и эффективный инструмент для управления догов...
1С:Документооборот – практичный и эффективный инструмент для управления догов...1С:Документооборот – практичный и эффективный инструмент для управления догов...
1С:Документооборот – практичный и эффективный инструмент для управления догов...
 
Отчетность по МФСО в "1С:Управление холдингом"
Отчетность по МФСО в "1С:Управление холдингом"Отчетность по МФСО в "1С:Управление холдингом"
Отчетность по МФСО в "1С:Управление холдингом"
 
Ключевые моменты подготовки отчетности по МСФО с использованием 1С:Управление...
Ключевые моменты подготовки отчетности по МСФО с использованием 1С:Управление...Ключевые моменты подготовки отчетности по МСФО с использованием 1С:Управление...
Ключевые моменты подготовки отчетности по МСФО с использованием 1С:Управление...
 
Новые возможности учета НДС в 1С_ERP 2.2
Новые возможности учета НДС в 1С_ERP 2.2Новые возможности учета НДС в 1С_ERP 2.2
Новые возможности учета НДС в 1С_ERP 2.2
 
Налоговый учет 2. расходы
Налоговый учет 2. расходы Налоговый учет 2. расходы
Налоговый учет 2. расходы
 
Виды расходов налогового учета
Виды расходов налогового учетаВиды расходов налогового учета
Виды расходов налогового учета
 
Вебинар «Схемы бизнес-процессов в различных нотациях»
Вебинар «Схемы бизнес-процессов в различных нотациях»Вебинар «Схемы бизнес-процессов в различных нотациях»
Вебинар «Схемы бизнес-процессов в различных нотациях»
 
Финансовый лизинг в МСФО и РСБУ. Методика расчета и отражение в учете
Финансовый лизинг в МСФО и РСБУ. Методика расчета и отражение в учетеФинансовый лизинг в МСФО и РСБУ. Методика расчета и отражение в учете
Финансовый лизинг в МСФО и РСБУ. Методика расчета и отражение в учете
 
1С:Управление небольшой фирмой. Новое в версии 1.6.7
1С:Управление небольшой фирмой. Новое в версии 1.6.71С:Управление небольшой фирмой. Новое в версии 1.6.7
1С:Управление небольшой фирмой. Новое в версии 1.6.7
 
Малоизвестные хитрости работы в Конфигураторе 8.3
Малоизвестные хитрости работы в Конфигураторе 8.3Малоизвестные хитрости работы в Конфигураторе 8.3
Малоизвестные хитрости работы в Конфигураторе 8.3
 
Основные принципы ведения налогового учета в конфигурациях 1С: Предприятие 8....
Основные принципы ведения налогового учета в конфигурациях 1С: Предприятие 8....Основные принципы ведения налогового учета в конфигурациях 1С: Предприятие 8....
Основные принципы ведения налогового учета в конфигурациях 1С: Предприятие 8....
 
IFRS 16 аренда
IFRS 16 арендаIFRS 16 аренда
IFRS 16 аренда
 
IFRS 15 Выручка
IFRS 15 ВыручкаIFRS 15 Выручка
IFRS 15 Выручка
 
Комплексная автоматизация процессов управления человеческими ресурсами с испо...
Комплексная автоматизация процессов управления человеческими ресурсами с испо...Комплексная автоматизация процессов управления человеческими ресурсами с испо...
Комплексная автоматизация процессов управления человеческими ресурсами с испо...
 
Управление мероприятиями в 1С:Документооборот
Управление мероприятиями в 1С:ДокументооборотУправление мероприятиями в 1С:Документооборот
Управление мероприятиями в 1С:Документооборот
 
«1С:Управление небольшой фирмой новые функциональные возможности в 1.6.6 и 1....
«1С:Управление небольшой фирмой новые функциональные возможности в 1.6.6 и 1....«1С:Управление небольшой фирмой новые функциональные возможности в 1.6.6 и 1....
«1С:Управление небольшой фирмой новые функциональные возможности в 1.6.6 и 1....
 
Вебинар "Управление производством в 1С:ERP с учетом ограниченных производстве...
Вебинар "Управление производством в 1С:ERP с учетом ограниченных производстве...Вебинар "Управление производством в 1С:ERP с учетом ограниченных производстве...
Вебинар "Управление производством в 1С:ERP с учетом ограниченных производстве...
 
Вебінар "Нові можливості автоматизації бізнесу в програмі 1С:Управління невел...
Вебінар "Нові можливості автоматизації бізнесу в програмі 1С:Управління невел...Вебінар "Нові можливості автоматизації бізнесу в програмі 1С:Управління невел...
Вебінар "Нові можливості автоматизації бізнесу в програмі 1С:Управління невел...
 
Вебинар "Управление ассортиментом в 1с ерп 2.1"
Вебинар "Управление ассортиментом в 1с ерп 2.1"Вебинар "Управление ассортиментом в 1с ерп 2.1"
Вебинар "Управление ассортиментом в 1с ерп 2.1"
 
Вебинар "Основные средства – учитываем по новой цене в 1С:Бухгалтерия 3.0"
Вебинар "Основные средства – учитываем по новой цене в 1С:Бухгалтерия 3.0"Вебинар "Основные средства – учитываем по новой цене в 1С:Бухгалтерия 3.0"
Вебинар "Основные средства – учитываем по новой цене в 1С:Бухгалтерия 3.0"
 

«Индексы в 1С. Влияние на производительность»

  • 1. Индексы в 1С. Влияние на производительность Индексы в 1С Влияние на производительность
  • 2. Индексы в 1С. Влияние на производительность План вебинара: Что такое ИНДЕКС Кластерный и некластерный индексы Составной и покрывающий индексы Селективность индекса Плюсы и минусы индексов Вопросы для закрепления Настройка индексов в 1С Примеры использования индексов в 1С Полезные ссылки
  • 3. Индексы в 1С. Влияние на производительность Таблица-куча - это неупорядоченный набор данных. Что такое индекс № Город Улица Дом 1 Владимир Ленина 4 2 Москва Пушкина 57 3 Смоленск Ломоносова 16 4 Анапа Первая 3 № Город Улица Дом 1 Абакан Левитана 1 2 Сургут Тургенева 76 3 Судогда Ломоносова 13 4 Кострома Первая 67 № Город Улица Дом 1 Ярославль Платонова 67 2 Муром Тихонова 43 3 Суздаль Вторая 10 4 Тула Первая 90 № Город Улица Дом 1 Краснодар Тургенева 34 2 Дзержинск Третья 109 3 Иваново Левая 16 4 Устюг Первая 3 Стр. 1 Стр. 2 Стр. 3 Стр. 4 Страница БД – основная единица, для осуществления операций обмена (ввода-вывода). То есть минимальная частица данных, которой оперирует сервер СУБД при работе с базами. Физически размер страницы составляет 8 кб.
  • 4. Индексы в 1С. Влияние на производительность Что такое индекс № Город 1 Абакан 11 2 Муром 12 № Город 1 Абакан 111 2 Иваново 112 № Город 1 Муром 121 2 Сургут 122 № Город 1 Абакан 3-1 2 Анапа 1-4 3 Владимир 1-1 4 Дзержинск 4-2 № Город 1 Иваново 4-3 2 Кострома 3-4 3 Краснодар 4-1 4 Москва 1-2 № Город 1 Муром 2-2 2 Смоленск 1-3 3 Судогда 3-3 4 Суздаль 2-3 № Город 1 Сургут 3-2 2 Тула 2-4 3 Устюг 4-4 4 Ярославль 2-1 Стр. 11 Стр. 12 Стр. 122Стр. 121Стр. 112Стр. 111 № Город Улица Дом 1 Владимир Ленина 4 2 Москва Пушкина 57 3 Смоленск Ломоносова 16 4 Анапа Первая 3 {…} Стр. 1 Корневой уровень Промежуточный уровень Уровень листьев Страницы основной таблицы № Город Улица Дом 1 Краснодар Тургенева 34 2 Дзержинск Третья 109 3 Иваново Левая 16 4 Устюг Первая 3 Стр. 4
  • 5. Индексы в 1С. Влияние на производительность Таблица-куча: Содержит все данные. Хранит данные в неотсортированном виде Для поиска требуется последовательно считывать все данные, пока не найдутся нужные. Очень медленно работает поиск по таблице-куче Индекс Содержит данные только определенных полей таблицы. Хранит данные полей в отсортированном виде в сбалансированном b-дереве поиска. Для поиска нужных данных достаточно чтения нескольких страниц данных, а не всей таблицы. Значительно ускоряет процедуру поиска нужных данных. Для поиска по таблице-куче нужно по городу «Иваново» нужно «просканировать» 4 страницы данных. При поиске по индексу – только одну нужную страницу данных. Что такое индекс
  • 6. Индексы в 1С. Влияние на производительность Некластерный индекс: «Листья» содержат ссылки на страницы основной таблицы. Требуется дополнительное чтение страниц основной таблицы, если нужных полей выборки не содержится в индексе. Кластерный индекс: «Листья» уже содержат страницы основной таблицы. Не требует дополнительного чтения страниц основной таблицы. Использование кластерного индекса ускоряет процедуру чтения данных, но усложняет обслуживание такой таблицы, так как основная таблица записывается в отсортированном виде. Большая часть данных в платформе 1С хранится в виде кластеризованной таблицы Кластерный и некластерный индекс
  • 7. Индексы в 1С. Влияние на производительность Некластерный индекс Кластерный индекс № Город 1 Абакан 11 2 Муром 12 № Город 1 Муром 121 2 Сургут 122 Корневой уровень Промежуточный уровень № Город 1 Сургут 3-2 2 Тула 2-4 3 Устюг 4-4 4 Ярославль 2-1 Уровень листьев № Город Улица Дом 1 Краснодар Тургенева 34 2 Дзержинск Третья 109 3 Иваново Левая 16 4 Устюг Первая 3 Страницы данных № Город 1 Абакан 11 2 Муром 12 № Город 1 Муром 121 2 Сургут 122 Корневой уровень Промежуточный уровень № Город Улица Дом 1 Краснодар Тургенева 34 2 Дзержинск Третья 109 3 Иваново Левая 16 4 Устюг Первая 3 Листья содержат данные таблицы Кластерный и некластерный индекс
  • 8. Индексы в 1С. Влияние на производительность Некластерный индекс Кластерный индекс Кластерный и некластерный индекс Может быть несколько для одной таблицы по разным наборам полей Каждый дополнительный индекс содержит копию данных основной таблицы Таблица данных сортируется по полям кластерного индекса Кластерный индекс может быть только один. Чтения индекса достаточно для получения любых полей выборки. Удобны при работе с данными, у которых значение ключа возрастает. Например, для документов.
  • 9. Индексы в 1С. Влияние на производительность Простой индекс – индекс, состоящий из одного поля Составной индекс – индекс состоящий из нескольких полей Составной (и простой) индекс может быть кластерным и некластерным. Последовательность полей составного индекса имеет значение. Составные индексы по полям «Город + Улица» и «Улица +Город» – это разные индексы В составном индексе возможно только последовательное использование полей Составной и покрывающий индексы
  • 10. Индексы в 1С. Влияние на производительность Составной и покрывающий индексы № Город Улица 1 Абакан Левитана 11 2 Муром Тихонова 12 № Город Улица 1 Муром Тихонова 121 2 Сургут Тургенева 122 Корневой уровень Промежуточный уровень № Город Улица 1 Сургут Тургенева 3-2 2 Тула Первая 2-4 3 Устюг Первая 4-4 4 Яросл авль Платонова 2-1 Уровень листьев Индекс будет использоваться, если отбор осуществляется по полю «Город» или по полям «Город+Улица» Если по «Городу» то «частичное сканирование». При отборе по полю «Улица» то индекс использовать нецелесообразно Наглядный пример – поиск точки мира на карте. Сначала мы ищем страну, потом город, потом улицу и т.д. Нет смысла сначала искать улицу, потом город ПОЛЯ ИСПОЛЬЗУЮТСЯ ТОЛЬКО ПОСЛЕДОВАТЕЛЬНО
  • 11. Индексы в 1С. Влияние на производительность Составной и покрывающий индексы Покрывающий индекс – индекс, который содержит в себе все поля запроса Выбрать Город, Улица из Справочник.Адреса где Город = "Москва» Индекс является покрывающим, так как содержит все поля запроса (Город+Улица) Не требуется подгружать данные из основной таблица, так как поля индекса уже содержать эти данные Выбрать Город, Дом из Справочник.Адреса где Город = "Москва» Индекс не является покрывающим, так как содержит НЕ все поля запроса (Город+Улица) Если индекс не кластерный, то потребуется подгружать страницы с недостающими данными
  • 12. Индексы в 1С. Влияние на производительность Показатель селективности = 1/DISTINCT_KEY DISTINCT_KEY – количество уникальных записей в поле (ключе индекса). Есть, есть индекс по полю с типом булево, которое может быть иметь только два значения. То получаем показатель селективности ½ = 0,5 или 50%. Это очень низкая селективность. Из разных источников. Если показатель селективности выше 10(30)%, то использование такого индекса только замедляет работу. Чем ниже показатель селективности, тем эффективнее индекс. Селективность индекса
  • 13. Индексы в 1С. Влияние на производительность Селективность влияет на то, будет ли вообще использоваться индекс При низкой селективности лучше использовать сканирование таблицы, чем выборку по индексу В начало лучше ставить самые селективные (уникальные) и часто используемые поля Селективность индекса
  • 14. Индексы в 1С. Влияние на производительность Почему поиск по индексу работает быстрее чем, поиск по таблице? Может ли кластерный индекс быть не покрывающим? Какая будет селективность индекса по полю ИНН для справочника «Организации», в котором находиться 5 разных организаций? Есть ли смысл использовать такой индекс? А если это индекс по коду для справочника «Номенклатура» с 10 000 элементов? Вопросы
  • 15. Индексы в 1С. Влияние на производительность Плюсы и минусы индексов Значительное ускорение выборки нужных данных из больших массивов Сокращение затрат на ресурсы при использовании покрывающих индексов. Нет необходимости подгружать ненужные страницы данных. Блокировка только нужных записей при работе с таблицами, и следовательно высокая параллельность работы пользователей. Плюсы Минусы Индексы занимают дополнительное место. Бывает, что индексы занимают больше места, чем сама таблица данных. Дополнительные затраты на обслуживание индекса при изменении данных. Кроме изменения данных самой таблицы нужно обновлять данные в индексах. Требуется периодическое обслуживание индексов – дефрагментация, обновление статистики.
  • 16. Индексы в 1С. Влияние на производительность Свойство «Индексировать» Платформа для реквизита документа создала составной индекс «ПолеРеквизита»+ «Ссылка» Настройка индексов в 1С
  • 17. Индексы в 1С. Влияние на производительность Свойство «Индексировать с дополнительным упорядочиванием» Платформа кроме поля, включает Основное представление объекта. «ПолеРеквизита» + «ДатаДокумента (для документа)» + «Ссылка» + «ПометкаУдаления (8.3)» Настройка индексов в 1С
  • 18. Индексы в 1С. Влияние на производительность Свойство «Ведущее» у регистра сведений. Создается индекс аналогично «Индексировать» Настройка индексов в 1С
  • 19. Индексы в 1С. Влияние на производительность Критерий отбора. Создается индекс в таблице каждого реквизита отбора Настройка индексов в 1С Товар табличной части документа включен в критерий отбора Платформа создала составной индекс для табличной части товары «ТоварСсылка»+»ДокументСсылка»
  • 20. Индексы в 1С. Влияние на производительность Основные инструменты сбора плана запроса: Profiler SQL Консоль запросов Технологический журнал ЦУП Операторы плана запроса: «Clustered Index seek» или «Index seek» – поиск по индексу «Clustered Index scan» или «table scan» – сканирование кластерного индекса или таблицы, что практически одно и то же.
  • 21. Индексы в 1С. Влияние на производительность Индексация временных таблиц 8.2 индекс некластерный составной 8.3 индекс кластерный составной На практике часто индекс замедляет работу запроса Когда индекс может не использоваться в условиях Вычисление Функции Вхождение полей в разные списки. Частичное сканирование Отрицание ИЛИ Несоответствие полей индекса и условий запроса Порядок и содержание полей в условии. Примеры использования индексов в 1С
  • 22. Индексы в 1С. Влияние на производительность Индексы платформы 1С: «Индексы таблиц базы данных» на ИТС (http://its.1c.ru/db/metod8dev/content/1590/hdoc) Метод платформы: ПолучитьСтруктуруХраненияБазыДанных() Основные понятия индексов с примерами: http://www.sql.ru/articles/mssql/03013101indexes.shtml Влияние индексов на производительность 1С:предприятие 8 http://www.gilev.ru/index/ http://курсы-по-1с.рф/news/2015-12-21-platform-1c-index Полезные ссылки