Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Partitioning vs cluster indexing  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
[quot aleks2]
Crazy_Driver
пропущено...
ЗЫ. Всегда удивлялся идиотам задающим на собеседованиях вопросы о деталях внутренней организации данных.


Такие идиоты и составляют состав первой десятки крупнейших софтверных компаний мира.
Из последнего примера Bloomberg NY
6 фев 16, 01:26    [18780676]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
aleks2
Вот какая разница "как именно организовано хранение"?
Изменить его вам не дано.

ЗЫ. Всегда удивлялся идиотам задающим на собеседованиях вопросы о деталях внутренней организации данных.
Обычно те, кто в курсе внутренней структуры, отличают inner join от left join, не путаются в уровнях изоляции, и не заявляют потом, что я тут мол божественный код и структуру сваял, а как оно работает мне пофиг, пусть админ БД тюнит.
6 фев 16, 01:40    [18780695]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
aleks2
Guest
Lepsik
Такие идиоты и составляют состав первой десятки крупнейших софтверных компаний мира.
Из последнего примера Bloomberg NY


Ща паду ниц. Алилуйя!!!

ЗЫ. Вольно вам сотворять себе деревянных идолов.

Сообщение было отредактировано: 6 фев 16, 13:47
6 фев 16, 06:30    [18780856]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
aleks2
Crazy_Driver
пропущено...


Различия на листовом уровне. И не тупо - остро ;)

Вот какая разница "как именно организовано хранение"?
Изменить его вам не дано.

ЗЫ. Всегда удивлялся идиотам задающим на собеседованиях вопросы о деталях внутренней организации данных.


А как без понимания внутренней структуры индекса вы вообще решаете где какой индекс нужен? "Типа что бы быстро искалось"?

Нам тут досталась системка: во всех табличках на каждом поле по индексу из одного поля.
6 фев 16, 11:12    [18781042]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
aleks2
Guest
Mike_za
aleks2
пропущено...

Вот какая разница "как именно организовано хранение"?
Изменить его вам не дано.

ЗЫ. Всегда удивлялся идиотам задающим на собеседованиях вопросы о деталях внутренней организации данных.


А как без понимания внутренней структуры индекса вы вообще решаете где какой индекс нужен? "Типа что бы быстро искалось"?

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


С этого места - подробнее.
Как же те, страдалец, знание унутренней структуры индекса помогает ими пользоваться?

ЗЫ. Да, индекс = быстрее будет искаться. По полям, включенным в индекс.
6 фев 16, 19:39    [18782251]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
А тебе, наверное. таблички альтерить в базе еще не разрешают?
6 фев 16, 20:15    [18782352]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
aleks2
Guest
Mike_za
А тебе, наверное. таблички альтерить в базе еще не разрешают?

Э-эээ, страдалец, так дешево слиться.
Иди, учись, студент.
6 фев 16, 20:21    [18782371]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Не всякий индекс полезен и будет использоваться сервером даже если поиск и будет по этому полю.
6 фев 16, 20:23    [18782383]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Тоже на каждое поле создаете? Потом приходят взрослые и подчищают?
6 фев 16, 20:23    [18782386]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
ппп-п
Guest
Mike_za
А как без понимания внутренней структуры индекса вы вообще решаете где какой индекс нужен? "Типа что бы быстро искалось"?

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


Где и какой индекс будет использоваться решит оптимизатор. Ваша задача создать его с правильной структурой - чтобы необходимые запросы смогли его использовать. Структура индекса в данном случае не имеет отношение к внутренней структуре, это скорее декларативная часть.
7 фев 16, 02:32    [18783362]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
aleks2
Mike_za
пропущено...


А как без понимания внутренней структуры индекса вы вообще решаете где какой индекс нужен? "Типа что бы быстро искалось"?

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


С этого места - подробнее.
Как же те, страдалец, знание унутренней структуры индекса помогает ими пользоваться?

ЗЫ. Да, индекс = быстрее будет искаться. По полям, включенным в индекс.
и совершенно не имеет значения B дерево там, или LSM.. Ну ну :)
7 фев 16, 11:18    [18783744]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
ппп-п, и index seek и index scan оба используют индекс. Но используют по разному.
Сюда же можно добавить историю с sarg предикатами.
Сюда же инклюд поля, сюда же селективность и количество чтений при использовании индекса и лукапа, или скана без лукапа.
И что индекс сиик может быть не всегда здорово. К примеру, на котором 90% стоимости запроса в плане (если его свойства посмотреть и там seek + seek predicate).
Сюда же исторю с дедлоками при разными использованиями инжексов из паралельных сессий.

Понимание внутренней структуры индекса позволяет лучше понимать почему оптимизатор выбирает тот или иной индекс и оператор. Считайте это базовыми знаниями, которые как и в любой области деятельности отличают уровни специалистов решающих одинаковые задачи
7 фев 16, 11:19    [18783747]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Эта цитата более точно отражает суть сказанного ранее про полезность знания внутреннего устройства

Inside the SQL Server 2014 Hekaton Engine
By Kalen Delaney
SQL Server In-Memory OLTP is a new technology and this is not a book specifically on performance tuning and best practices. However, as you learn about how the Hekaton engine works internally to process your queries, certain best practices and opportunities for performance tuning will become obvious
19 фев 16, 01:32    [18838674]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
questioner
Member

Откуда:
Сообщений: 1906
_djХомяГ
К примеру

два



Картинка с другого сайта.

Объясните пожалуйста как sql server использует этот некластерный индекс поверх кластерного?

P.S. до этого момента понял всё, что в статье написано
22 фев 16, 11:26    [18850611]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
questioner
Member

Откуда:
Сообщений: 1906
и что вообще за абстракция такая "страница"?
22 фев 16, 11:34    [18850626]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Glory
Member

Откуда:
Сообщений: 104751
questioner
и что вообще за абстракция такая "страница"?

Это не абстракция, а реальный физический объект. Физический файл данных разделен на страницы по 8кб каждая
22 фев 16, 11:46    [18850657]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Glory
Member

Откуда:
Сообщений: 104751
questioner
Объясните пожалуйста как sql server использует этот некластерный индекс поверх кластерного?

Нет никакого поверх.
Каждый некластерный индекс автоматически включает в себя кластерный.
22 фев 16, 11:48    [18850661]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
o-o
Guest
Glory
Каждый некластерный индекс автоматически включает в себя кластерный.

фигасебе фразочка.
это *ключ* некластерного включает *ключ* кластерного,
если кластерный вообще имеется.
а не один индекс другой в себя включает
22 фев 16, 12:20    [18850765]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
фигасебе фразочка.
это *ключ* некластерного включает *ключ* кластерного,
если кластерный вообще имеется.
а не один индекс другой в себя включает

Ну давай, начинай.
22 фев 16, 12:21    [18850768]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
o-o
Guest
questioner
_djХомяГ
К примеру

два



Картинка с другого сайта.

Объясните пожалуйста как sql server использует этот некластерный индекс поверх кластерного?

в статье
_djХомяГ
К примеру
два
перевод сделан действительно как "некластерный индекс поверх кластерного".
надо было на рисунке эту фразу захватить, чтобы те, кому фраза не нравится, напрямую с переводчиком ругались.
имелось в виду "non clustered index on a clustered index" в противовес clustered index on a heap.
т.е. рассматривается некластерный индекс, построенный на кластерной таблице, в отличие от построенного на куче.
на картинке вы видите на самом нижнем этаже листовой уровень этого некластерного индекса,
где вместе с каждым ключом некластерного хранится ключ кластерного индекса.
теперь если ваш запрос имеет вид SELECT * FROM <кластерная таблица> WHERE некластеррный_ключ = ...
сервер сперва использует некластерный индекс, чтобы выйти на соответствующий кластерный ключ,
а потом уже в кластерном индексе отыщет соответствующую строку на листовом уровне,
где находятся все данные, т.е. доберет там все оставшиеся поля (в селекте же заказаны все поля)

ну т.е. для вашей картинки и значения LONDON (допустим, в WHERE указали именно LONDON)
будут выбраны значения EASTC, CONSH, SEVES
по ним будет сделан lookup в кластерный и выведены все запрашиваемые поля
22 фев 16, 13:09    [18850878]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
questioner
Member

Откуда:
Сообщений: 1906
Ещё вопрос возник.

Вот есть у нас некластерный индекс по 2 полям.


Верно, что на leaf level индекса будет n^2 записей, если взять, что n это количество записей в таблице?

может ли быть клстерный индекс по нескольким полям?
24 фев 16, 23:48    [18860020]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
еще не понял кто следит таки за статистикой и как ее засрать можно.

зачем перестраивать индекс мануально?
25 фев 16, 00:15    [18860050]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
o-o
Guest
questioner
Вот есть у нас некластерный индекс по 2 полям.
Верно, что на leaf level индекса будет n^2 записей, если взять, что n это количество записей в таблице?


хоть по десяти полям пускай будет индекс,
сколько всего записей в таблице, столько и на листовом уровне индекса.
каждый ключ индекса однозначно определяет запись в основной таблице,
будь она кластерная или куча.
и наоборот.
т.е. имеется взаимно однозначное соответствие между строками листового уровня некластерного индекса
и строками таблицы
25 фев 16, 00:16    [18860052]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
o-o
Guest
questioner
может ли быть клстерный индекс по нескольким полям?

а почему нет-то?
25 фев 16, 00:18    [18860054]     Ответить | Цитировать Сообщить модератору
 Re: Partitioning vs cluster indexing  [new]
o-o
Guest
redwhite90
еще не понял кто следит таки за статистикой и как ее засрать можно.

CREATE STATISTICS zasranka ON...

???
ну или расскажите, как выглядит "засранная статистика"
25 фев 16, 00:27    [18860063]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить