Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по индексированной вью / 21 сообщений из 21, страница 1 из 1
14.01.2020, 09:50
    #39913501
assmsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
Всем привет.

Есть таблица А без индексов:

Код: sql
1.
CREATE TABLE A ([id] INT, [NAME] VARCHAR(20), [START_DATE] DATE)



И индексированная вью :

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE VIEW v_А WITH SCHEMABINDING  
AS  
SELECT 
 [id]
,[NAME]
,[START_DATE]
FROM А

CREATE UNIQUE CLUSTERED INDEX i_ID  ON v_A (id); 
CREATE NONCLUSTERED INDEX i_name    ON v_A (name); 
CREATE NONCLUSTERED INDEX i_date    ON v_A (start_date)



Вопрос. Существование индексированной вьюхи v_А каким то образом влияет на производительность преобразования данных (INSERT,DELETE,UPDATE) в таблице А?
...
Рейтинг: 0 / 0
14.01.2020, 09:55
    #39913503
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
assmsk
Всем привет.

Есть таблица А без индексов:

Код: sql
1.
CREATE TABLE A ([id] INT, [NAME] VARCHAR(20), [START_DATE] DATE)




И индексированная вью :

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE VIEW v_А WITH SCHEMABINDING  
AS  
SELECT 
 [id]
,[NAME]
,[START_DATE]
FROM А

CREATE UNIQUE CLUSTERED INDEX i_ID  ON v_A (id); 
CREATE NONCLUSTERED INDEX i_name    ON v_A (name); 
CREATE NONCLUSTERED INDEX i_date    ON v_A (start_date)




Вопрос. Существование индексированной вьюхи v_А каким то образом влияет на производительность преобразования данных (INSERT,DELETE,UPDATE) в таблице А?

Да, влияет. Индексированное вью и его индексы - материализуются, их поддержание требует дополнительных операций.
...
Рейтинг: 0 / 0
14.01.2020, 09:58
    #39913507
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
assmsk,

А зачем вам индексировать вью с одной таблицей? Индексировать есть смысл что-то из нескольких таблиц или что-то в чем есть какая-то логика кроме выбора нескольких полей.
...
Рейтинг: 0 / 0
14.01.2020, 10:23
    #39913514
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
assmsk
Вопрос. Существование индексированной вьюхи v_А каким то образом влияет на производительность преобразования данных (INSERT,DELETE,UPDATE) в таблице А?
В данном случае влияние то же самое, как от создания этих индексов на саму таблицу.
Только менее производительно, потому что в случае вью таблица остаётся кучей, и получается, что таблица как бы удваивается.
...
Рейтинг: 0 / 0
14.01.2020, 10:47
    #39913523
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
alexeyvg,

alexeyvg
Только менее производительно, потому что в случае вью таблица остаётся кучей

Остается кучей даже если для представления создан кластерный индекс ? Как в этом случае
авторCREATE UNIQUE CLUSTERED INDEX i_ID ON v_A (id);
...
Рейтинг: 0 / 0
14.01.2020, 11:49
    #39913563
icprog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
entrypoint,

Таблица остается кучей, т.к.
Код: sql
1.
CREATE UNIQUE CLUSTERED INDEX i_ID ON v_A (id);


совершенно не затрагивает исходную таблицу. Создается индекс i_ID (материализуется представление) дублирующий данные исходной таблицы
...
Рейтинг: 0 / 0
14.01.2020, 11:49
    #39913564
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
entrypoint
Остается кучей даже если для представления создан кластерный индекс ? Как в этом случае


Создание индексированного вью никак не влияет на структуру хранения данных в самой таблице.
...
Рейтинг: 0 / 0
14.01.2020, 11:58
    #39913571
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
icprog,
msLex,

Понятно, что таблица остается кучей, а что происходит с представлением в этом случае ?
...
Рейтинг: 0 / 0
14.01.2020, 11:59
    #39913573
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
entrypoint
icprog,
msLex,

Понятно, что таблица остается кучей, а что происходит с представлением в этом случае ?


Оно материализуется.
...
Рейтинг: 0 / 0
14.01.2020, 12:15
    #39913584
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
msLex
entrypoint
icprog,
msLex,

Понятно, что таблица остается кучей, а что происходит с представлением в этом случае ?


Оно материализуется.


Т.е. перестает быть кучей ?
...
Рейтинг: 0 / 0
14.01.2020, 12:17
    #39913585
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
a_voronin
assmsk,

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


Может быть автору для каких-то целей нужна кластеризованная реплика таблицы.
...
Рейтинг: 0 / 0
14.01.2020, 12:28
    #39913594
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
Владислав Колосов
a_voronin
assmsk,

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


Может быть автору для каких-то целей нужна кластеризованная реплика таблицы.


Кластеризованная по другому принципу нежели исходная таблица?
...
Рейтинг: 0 / 0
14.01.2020, 12:49
    #39913611
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
a_voronin,

исходная таблица - куча, см. выше переписку.
...
Рейтинг: 0 / 0
14.01.2020, 13:15
    #39913629
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
entrypoint
msLex
пропущено...


Оно материализуется.


Т.е. перестает быть кучей ?

Вью вообще не может быть кучей
...
Рейтинг: 0 / 0
14.01.2020, 14:24
    #39913662
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
alexeyvg,

по логике да, понятно, что индексы должны перестраиваться в случае insert/update/delete, а по факту, если одна таблица в сотне вьюшек с индексами будет задействована, получится, что всё, кранты серверу?
Или там какой - либо интеллектуальный алгоритм перестойки индексов есть, типа по-необходимости ?
...
Рейтинг: 0 / 0
14.01.2020, 14:25
    #39913663
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
defragmentator
alexeyvg,

по логике да, понятно, что индексы должны перестраиваться в случае insert/update/delete, а по факту, если одна таблица в сотне вьюшек с индексами будет задействована, получится, что всё, кранты серверу?
Или там какой - либо интеллектуальный алгоритм перестойки индексов есть, типа "по-необходимости" ?
...
Рейтинг: 0 / 0
14.01.2020, 14:26
    #39913666
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
defragmentator
alexeyvg,

по логике да, понятно, что индексы должны перестраиваться в случае insert/update/delete, а по факту, если одна таблица в сотне вьюшек с индексами будет задействована, получится, что всё, кранты серверу?
Или там какой - либо интеллектуальный алгоритм перестойки индексов есть, типа по-необходимости ?

конечно вью не будет изменятся, если изменения в таблице ее не затрагивают.
...
Рейтинг: 0 / 0
14.01.2020, 21:47
    #39913987
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
entrypoint
Остается кучей даже если для представления создан кластерный индекс ? Как в этом случае
Разумеется.
Индексиорованная вьюха - это отдельный объект.
В данном случае она со всеми полями, тро есть будет копия таблицы, но кластерная.
Если сделать 10 таких вьюх, то будет 10 кластерных таблиц, + ещё одна в виде кучи.
...
Рейтинг: 0 / 0
14.01.2020, 21:51
    #39913990
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
defragmentator
по логике да, понятно, что индексы должны перестраиваться в случае insert/update/delete, а по факту, если одна таблица в сотне вьюшек с индексами будет задействована, получится, что всё, кранты серверу?
Почему кранты?

Накладные расходы будут возрастать, как для любого индекса.

Сделайте вместо вьюхи покрывающий индекс [id] include([NAME],[START_DATE]), он тоже займёт место.

То есть правильно сказать не кранты, а возрастающие накладные расходы на изменения данных из за каждого нового индекса, плюс дополнительное место для хранения, но при этом ускорение выборки (если индекс "правильный").
А уж наступят ли "кранты", из за этих накладных расходов, зависит от объёмов и нагрузок.
...
Рейтинг: 0 / 0
14.01.2020, 21:53
    #39913992
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
defragmentator
Или там какой - либо интеллектуальный алгоритм перестойки индексов есть, типа по-необходимости ?
Нет, там всё онлайн в транзакции, как и для любого индекса.
Нету такого, что если к вьюхе не обращались, то она не будет обновляться.
...
Рейтинг: 0 / 0
15.01.2020, 01:20
    #39914043
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по индексированной вью
alexeyvg,

спасибо
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по индексированной вью / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]