powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Устройство кластерного индекса
24 сообщений из 49, страница 2 из 2
Устройство кластерного индекса
    #33018439
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-Kно не нашел там (если читать все обсуждение)противоречий с тем, что я сказал: (для кластерного индекса выбираю, КАК ПРАВИЛО, PK (Primary Key), тип данных Integer со свойством IDENTITY(1,1)).
Жаль, но на нет, и суда нет...
Эта рекомендация, как правило, неверная, и было бы Вашим делом, если бы не предлагали следовать такому подходу остальным.

P.S. Только не надо прикрываться банальностями, типа Aleksey-KНет правил без исключений.., но они (исключения) только подтверждают правила.Исключения, подтверждающие правила - это, IMHO, чушь, обычно говорит о том, что правило пора менять.

P.P.S. Ничего личного.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33018471
Alois
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая кодировка на указанной странице???
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33018610
Alois
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наконец-то прочитал.
Опять задача у автора очень вырожденная. В комментариях к этой статье некий Олег Аксенов упомянул про JOIN. Очень кстати.
Вывод по примеру п.1 статьи ИМХО некорректен. У автора страница данных была почти пустая. Поэтому там операции с данными оказались дешевыми. В моём же примере одна строка занимала треть страницы.
Очень хороший совет насчет частых интенсивных инсертов в таблицу с кластерным индексом по ИД. Действительно, могут быть проблемы.
Но общий вывод верен: думать надо всегда! Но думать можно, когда знаешь о чём. Если нет знаний по хранению данных и индексов, можно думать и пробовать сколько угодно.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019083
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA Aleksey-Kно не нашел там (если читать все обсуждение)противоречий с тем, что я сказал: (для кластерного индекса выбираю, КАК ПРАВИЛО, PK (Primary Key), тип данных Integer со свойством IDENTITY(1,1)).
Жаль, но на нет, и суда нет...
Эта рекомендация, как правило, неверная, и было бы Вашим делом, если бы не предлагали следовать такому подходу остальным.

P.S. Только не надо прикрываться банальностями, типа Aleksey-KНет правил без исключений.., но они (исключения) только подтверждают правила.Исключения, подтверждающие правила - это, IMHO, чушь, обычно говорит о том, что правило пора менять.

P.P.S. Ничего личного.

Рекомендация по поводу PK Identity(1,1) INTEGER на самом деле очень верная. Я уверен,что 90 процентов посетителей этого сайта так и поступают, и если Вы не входите в их число, значит Вы теоретик. Как правило, таблица факторов (не справочник) имеет несколько индексов для покрытия различных запросов и длинный кластерный ключ приведет в существенному росту всех остальных индексов. Есть случаи, когда кластерный индекс используют не для описанного мною (и BOL) варианта, но , как правило, эти таблицы и не имеют сурогатного PK (диапазон дат, как правило)
С уважением, Алексей.
P.P.P.S. Ничего личного
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019155
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-KРекомендация по поводу PK Identity(1,1) INTEGER на самом деле очень верная. Я уверен,что 90 процентов посетителей этого сайта так и поступают, и если Вы не входите в их число, значит Вы теоретик.
Массовость мнения не есть доказательство правильности этого мнения, не говоря уж о таком обобщении - 90%, да еще - сайта. Опять ведь общие слова...
На этом форуме тема кластерных индексов поднимается периодически, в пределах месяца, максимум - двух. Каждый раз несутся одни и те же голословные, невесть откуда взявшиеся утверждения. Большинству более-менее грамотных проектировщиков БД эта тема уже просто надоела, повторять одно и то же - не самое интересное занятие. Если Вам и вправду интересна эта тема, то поищите на этом форуме темы, связанные с кластерным индексом. Поверьте, это будет очень познавательно, особенно если учесть, что Ваш опыт, судя по всему, идет от FoxPro и dbf-файлов...

Aleksey-KКак правило, таблица факторов (не справочник) имеет несколько индексов для покрытия различных запросов и длинный кластерный ключ приведет в существенному росту всех остальных индексов. Есть случаи, когда кластерный индекс используют не для описанного мною (и BOL) варианта, но , как правило, эти таблицы и не имеют сурогатного PK (диапазон дат, как правило)Во-первых, ответьте сами себе на вопрос, зачем кластерный индекс существует в принципе, неужели только для того, чтобы данные в таблице сохранялись в том же порядке, в котором они добавлялись ? И факт того, что в MSSQL значение кластерного ключа включаются в остальные индексы (хорошо, что Вы об этом знаете) ровным счетом ничего не меняет. Из того, что желательно делать его как можно меньше, совершенно не следует, что clustered PK Identity(1,1) INTEGER - это лучший вариант. И особенно для таблицы фактов, Вы ведь ее имели в виду, нет ?
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019280
Merle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-KРекомендация по поводу PK Identity(1,1) INTEGER на самом деле очень верная. Я уверен,что 90 процентов посетителей этого сайта так и поступают...
Простите, это те же самые 90%, которые имеют довольно смутное представление о том, например, что такое ACID и как эти свойства обеспечиваются? :)

Aleksey-KЕсть случаи, когда кластерный индекс используют не для описанного мною (и BOL) варианта, но , как правило, эти таблицы и не имеют сурогатного PK (диапазон дат, как правило)
Ладно, не верите мне, призову на помощь классиков. Вот что говорят по этому поводу первые три книжки по сиквелу попавшиеся мне на глаза:

Microsoft T-SQL Performance Tuning Part 2: Index Tuning Strategies Adapted from “Transact-SQL Programming” By Kevin Kline, Andrew Zanevsky, and Lee Gould. Published by O’Reilly & Associates. ISBN: 1565924010
Clustered indexes are good for queries that use:
· GROUP BY that use all or the first few columns of the clustered index key,
· ORDER BY that use all or the first few columns of the clustered index key,
· WHERE clause conditions comparing to the first or the first few columns of the clustered index key and retrieving many rows,
· Long keys (either based on long columns or composite keys comprised of many columns), because a clustered index on a long key takes no extra space for the leaf level. A non-clustered index on a long key may be quite large, because it takes a lot of space to store keys of the leaf level of the index.

Заметтье, ни слова про PK, то есть эти ребята такой сценарий даже не рассматривают. Читаем дальше...

The first three types benefit from the fact that requested rows are located continuously on the table. SQL Server only has to find the first qualifying row and then keep on scanning until all rows are done. Several rows found on a single page reduce the number of I/O operations needed to access all the data. Additionally, Microsoft SQL Server has a performance booster — the read-ahead feature that automatically detects sequential reads from the same table and prefetches data pages before the query asks for them.
Что собственно и утверждалось.. Кластерный индекс все свои лучшие качества проверяет как раз на Range-выборках, а таковых от суррогатного PK вряд ли стоит ожидать, он никакой семантики не несет и групповые выборки по нему бессмыслены.

Rick Sawtell, Michael Lee, Matt Bridges, with Victor Isakov
Chapter 4 from SQL Server, 24 seven, published by Sybex, Inc.
Although SQL Server Primary Keys are associated with clustered indexes by default, these are often poor choices for clustered indexes . The maximum performance advantage from a clustered index comes when selecting ranges of data. Primary Keys, when included in a WHERE clause, are usually not selected in ranges.

Без комментариев.

Kalen Delaney Inside SQL Server 2000
Clustered indexes are extremely useful for range queries (for example, WHERE sales_quantity BETWEEN 500 and 1000) and for queries in which the data must be ordered to match the clustering key. Only one clustered index can exist per table, since it defines the physical ordering of the data for that table. Since you can have only one clustered index per table, you should choose it carefully based on the most critical retrieval operations . Because of the clustered index's role in managing space within the table, nearly every table should have one. And if a table has only one index, it should probably be clustered.

Выборка по PK доволно редко относится к most critical retrieval operations, и с этим не плохо справляется и обычный индекс. Bookmark lookup за одной записью просто другой порядок малости, по сравнению bookmark lookup'ами по range. Очем, собственно, Kalen и пишет далее:

If a table is declared with a primary key (which is advisable), by default the primary key columns form the clustered index. Again, this is because almost every table should have a clustered index, and if the table has only one index, it should probably be clustered. But if your table has several indexes, some other index might better serve as the clustered index . This is often true when you do single-row retrieval by primary key. A nonclustered, unique index works nearly as well in this case and still enforces the primary key's uniqueness. So save your clustered index for something that will benefit more from it by adding the keyword NONCLUSTERED when you declare the PRIMARY KEY constraint.

С уважением, Ivan
автор поминавшегося здесь блога
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019374
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Merle_ и ChA !
Все цитаты, которые вы привели, очень правильные и я под всеми ними могу подписаться, но...
1. Практически все они утверждают, что максимальную эффективность дает использование кластерного индекса по тем полям, по которым выполняется поиск по диапазону значения. В реальном приложении такие поиски необходимо выполнять в 70% по полям типу дата (например: с 1.1.2005 по 21.01.2005). Вот по этим полям я, конечно, и создаю кластерный индекс, а для PK использую некластерный. Иногда, имеет смысл кластерный индекс использовать и для числового поля (в вашем цитате: sales_quantity BETWEEN 500 and 1000), но... это уже не очень легко выполнить на практике. Как правило, в таблице факторов (например, документы), дата одна, а цифровых полей несколько (кол-во, суммы в рублях и суммы в валюте и т.п.) и по всем надо производить поиск типа: «sales_quantity BETWEEN 500 and 1000». По какому полю будете делать индекс, он ведь один! (Видите, я и это знаю)!? Свое утверждение я делаю исходя из более чем 12-летнего опыта разработки приложений управления базами данных, а не цитат из умных, но иногда, практически бесполезных книг.
Легко посоветовать использовать кластерный индекс для всех BETWEEN, а на практике…. Один индекс для всех !
2. Как это реально не выполняется поиск по суррогатным ключам!!! Да большинство запросов в моих хранимых процедурах (да полагаю и не только в моих) содержат многочисленные JOIN ... . Это разве не поиск по PK и FK?!
Каждая таблица факторов может содержать массу FK, и в запросе, как правило, они все переходят в JOIN. Или вы считаете, что MERGE JOIN менее эффективен, чем NESTED LOOP (я и об этом знаю, а вы !?)

С уважением, Алексей.

P.S. Не надо оскорблять уважаемое сообщество в том, что они не знают, что такое ACID. Тем более что данный топик никакое отношение к транзакциям не имеет, а большое кол-во цитат в данном контексте, говорит только о том, что вы хорошо умеет пользоваться поисковой системой?
P.P.S. Полагаю, что данный спор стал бесполезным и потихоньку переходит в оскорбления ("..хорошо, что Вы об этом знаете..", "..90%, которые имеют довольно смутное представление о том, например, что такое ACID..." ) предлагаю его закончить. Каждый все равно останется при своем мнение, а истинна, как всегда, где-то между :)
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019400
Merle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор Не надо оскорблять уважаемое сообщество в том, что они не знают, что такое ACID.
Ну Вы же оскорбили уважаемое сообщество тем, что они не умеют пользоваться кластерным индексом? :)

автор В реальном приложении такие поиски необходимо выполнять в 70% по полям типу дата (например: с 1.1.2005 по 21.01.2005).
То есть у Вас 70% FK - это дата?

авторСвое утверждение я делаю исходя из более чем 12-летнего опыта разработки приложений управления базами данных, а не цитат из умных, но иногда, практически бесполезных книг.
Можно я не буду хвастаться своим опытом и регалиями? :)

авторИногда, имеет смысл кластерный индекс использовать и для числового поля (в вашем цитате: sales_quantity BETWEEN 500 and 1000), но... это уже не очень легко выполнить на практике. Как правило, в таблице факторов (например, документы), дата одна, а цифровых полей несколько (кол-во, суммы в рублях и суммы в валюте и т.п.) и по всем надо производить поиск типа: «sales_quantity BETWEEN 500 and 1000». По какому полю будете делать индекс, он ведь один!
По самому критичному к выполнению. Уверяю Вас, в большинстве случаев это будет вовсе не выборка по PK.

авторКак это реально не выполняется поиск по суррогатным ключам!!! Да большинство запросов в моих хранимых процедурах (да полагаю и не только в моих) содержат многочисленные JOIN ... . Это разве не поиск по PK и FK?!
Выборка по PK - это выборка одной записи, и с этим неплохо справится и обычный индекс. Выборка по FK - как раз та самая выборка нескольких записей и по этому FK, как правило, хороший кандидат на кластеризацию. Какой именно FK, если их несколько - зависит от характера конкретного приложения.

авторКаждая таблица факторов может содержать массу FK, и в запросе, как правило, они все переходят в JOIN. Или вы считаете, что MERGE JOIN менее эффективен, чем NESTED LOOP (я и об этом знаю, а вы !?)
Я бы так опрометчиво не хвастался подобным знанием.. :) merge гораздо более редкий зверек, нежели nested loop, именно потому, что эффективность merge очень сильно зависит от конкретных условий.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019457
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Merle_ !
Да... спор глухого со слепым...
Вы даже цитирую меня: (То есть у Вас 70% FK - это дата?) выводы делаете совсем не те, о чем идет речь в цитате.
Я проста, хотел сказать следующее: Нельзя один общий (а поэтому не очень умный) совет - "Используйте ВСЕГДА кластерный индекс на PK" подменять другим, не менее общим (следовательно, не более умным) - "НИКОГДА не используете кластерный индекс для суррогатных PK"
С большим уважением в Вашим регалиям, Алексей.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019479
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-K1. Практически все они утверждают, что максимальную эффективность дает использование кластерного индекса по тем полям, по которым выполняется поиск по диапазону значения. В реальном приложении такие поиски необходимо выполнять в 70% по полям типу дата (например: с 1.1.2005 по 21.01.2005). Вот по этим полям я, конечно, и создаю кластерный индекс, а для PK использую некластерный.Дело даже не столько в диапазоне, это просто естественное следствие из главной задачи кластерного индекса - минимизация операций чтения при типичных выборках данных. В некотором смысле можно даже считать кластерный индекс аналогом разбиения на partition.
Иногда можно получить дополнительный бонус, за счет уменьшения борьбы за страницу между конкурирующими процессами. В этом смысле дата документа может оказатся далеко не самым удачным вариантом, по крайней мере, не первым полем в кластерном индексе.

Aleksey-KИногда, имеет смысл кластерный индекс использовать и для числового поля (в вашем цитате: sales_quantity BETWEEN 500 and 1000), но... это уже не очень легко выполнить на практике. Как правило, в таблице факторов (например, документы), дата одна, а цифровых полей несколько (кол-во, суммы в рублях и суммы в валюте и т.п.) и по всем надо производить поиск типа: «sales_quantity BETWEEN 500 and 1000». По какому полю будете делать индекс, он ведь один!Вы опять про таблицу факторов, может все таки фактов ?
IMHO, один из неудачных примеров, полагаю он был сделан таковым только для доходчивости. Делать кластерный индекс по предположительно часто меняющимся данным - не самая хорошая идея. И вообще делать индексы по числовым данным - кол-во, суммы, цены и т.п. (исключая целочисленные идентификаторы, обычно - суррогатные), в большинстве случаев смысла нет, разве что в приложениях OLAP, но это совсем другая песня.

Aleksey-KСвое утверждение я делаю исходя из более чем 12-летнего опыта разработки приложений управления базами данных, а не цитат из умных, но иногда, практически бесполезных книг.Надо было для веса упомянуть MCP и MCSE :) За это время можно было бы понять, когда, как и зачем применять кластерный индекс. Хорошо подобранный кластерный индекс может позволить отказаться от ряда некластерных.

Aleksey-KЛегко посоветовать использовать кластерный индекс для всех BETWEEN, а на практике…. Один индекс для всех !Это кто Вам такое советовал ? Правильный выбор кластерного индекса совсем не подразумевает что его надо "раскорячить" на все диапазоны, хотя определенная иерархия может наличествовать, но что и на каком уровне опять же определяется типичными запросами к таблице.

Aleksey-K2. Как это реально не выполняется поиск по суррогатным ключам!!! Да большинство запросов в моих хранимых процедурах (да полагаю и не только в моих) содержат многочисленные JOIN ... . Это разве не поиск по PK и FK?!Каждая таблица факторов может содержать массу FK, и в запросе, как правило, они все переходят в JOIN. Или вы считаете, что MERGE JOIN менее эффективен, чем NESTED LOOP (я и об этом знаю, а вы !?)Может Вы даже знаете, что MERGE считается более дорогим, чем NESTED LOOP ? И в каких случаях он применим ? Это называется "распальцовкой", а не аргументом...

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

Aleksey-KПолагаю, что данный спор стал бесполезным ... предлагаю его закончить. Если бы не было такой рекомендации остальным Aleksey-Kдля кластерного индекса выбираю, как правило , PK (Primary Key), тип данных Integer со свойством IDENTITY(1,1) и НИКОГДА не имею, описанную Вами ситуацию, то не было бы и повода...

Aleksey-KНельзя один общий (а поэтому не очень умный) совет - "Используйте ВСЕГДА кластерный индекс на PK" подменять другим, не менее общим (следовательно, не более умным) - "НИКОГДА не используете кластерный индекс для суррогатных PK"Оба утверждения взяты непонятно откуда или что-то пропустил в ходе дискуссии, можете привести ссылки ? Кластерный совсем необязательно должен быть PK, но может им быть.

P.S. Фактически - уже флейм, продолжать в таком духе не вижу смысла, делайте, как хотите, только другим не внушайте иллюзий...

С уважением к Вашим регалиям.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019631
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весьма познавательно.

я тут еще в хелпе вычитал:

автор
Creating a Clustered Index

Consider using a clustered index for:

Columns that contain a limited number of unique values, such as a state column that contains only 50 unique state codes.


Queries that return a range of values, using operators such as BETWEEN, >, >=, <, and <=.


Queries that return large result sets.

И вот, призадумался.... наверное переделаю кластерный индекс. У меня по основной таблице (имеющей кучу FK) кластерным по неведению стоит сейчас суррогатный PK. Думаю сделать один из FK таковым. Правда, по нему уникальных значений не более десятка наберется. Но зато по нему часто и сортировка и выборка.

Верно ли я мыслю?
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019829
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-K
Нет не верно.. Сервер помещает в этом случае в страницы данных ссылку на новое место строки (point forward ), и следовательно, указатель на нее из не листьевого уровня не надо изменять.
С уважением, Алексей.

forwarding pointer применяется тогда, когда строка в куче при апдейте вынуждена уехать на новую страницу (например, стала больше и не помещается на старой). Таким образом некластерные индексы не надо перестраивать.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019879
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShurgenzВерно ли я мыслю?Логика есть, только не забывайте о том, что в MSSQL кластерный индекс рекомендуется делать уникальным. Если это не сделаете сами, то сервер сделает это за Вас, добавляя, не несущий никакой другой смысловой нагрузки, кроме "уникализации", "хвост".
Это можно сделать, например, путем включения PK в конец кластерного индекса, что-то вроде (Rng10, ID), или других значений, обеспечивающих "уникализацию". В общем, экспериментируйте...
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33019895
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA ShurgenzВерно ли я мыслю?Пара добавлений, на всякий случай, к предыдущему посту.
1. Явная "уникализация" кластерного индекса обязательно должна сопровождаться словом UNIQUE в его определении. Т.е., типа
Код: plaintext
CREATE UNIQUE CLUSTERED INDEX index_name ...
Это, естественно, не нужно, если таковой индекс определяется как ограничение вида PRIMARY KEY или UNIQUE, для них достаточно просто указать, что они CLUSTERED.
2. Значения кластерного индекса будут также включатся во все некластерные индексы или ограничения, поэтому кроме минимизации размера кластерного "значения" (в пределах ~десятка байт, желательно, но не критично), хорошо чтобы "хвост", добавляемый для "уникализации" был "удачным", т.е., с наибольшей вероятностью востребованным (covered)...
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33020375
Alois
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно, познавательно. Да и вообще здорово, когда на работу есть техническое задание, и программисты приступают к работе, когда оно подписано высшим руководством (на уровне информатизации, конечно).
А реалии таковы, что сегодня хочу так, завтра - также, но с мааааленьким изменением, а послезавтра - хочу уже вот так. В итоге после полугода таких разработок рабочие таблица(ы) получаются набитыми такой информацией, что индексы вообще не помогают. Куча запросов на разные столбцы и их наборы, куча справочных (не FK !) и денормализовочных столбцов. А времени на перепроектирование уже нет.
Уважаемые Cha, Aleksey и другие опытные разработчики. Спасибо вам за "выданные" сведения. Они помогут, например, найти побольше аргументов, дающих возможность получить от руководства больше времени на проектирование базы и приложений, а не на слепое программирование.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33020620
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Статья, конечно, интересная и правильная. Но дело в том, что делать кластерный индекс для диапазонных выборок выгодно тогда, когда можно четко определить, что такие выборки составляют большинство запросов к таблице. Если же существуют десятки выборок по 3-4 полям - картина размывается, и премущества такого подхода практически теряются.

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

Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33021835
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alois
А реалии таковы, что сегодня хочу так, завтра - также, но с мааааленьким изменением, а послезавтра - хочу уже вот так. В итоге после полугода таких разработок рабочие таблица(ы) получаются набитыми такой информацией, что индексы вообще не помогают

вроде как в таких случаях Index tuning master советуют. Судя по документации - вещь хорошая, кто-нибудь ей действительно пользовался ? А то у меня руки не доходят проверить. Много слышал дурных отзывов о данной штуке, может у кого есть положительные впечатления ?
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33022256
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSвроде как в таких случаях Index tuning master советуют. Судя по документации - вещь хорошая, кто-нибудь ей действительно пользовался ? А то у меня руки не доходят проверить. Много слышал дурных отзывов о данной штуке, может у кого есть положительные впечатления ?Только не master, а Wizard
Чпок
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33022495
Alois
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пользовался. Он один раз посоветовал создать индекс из 7-ми столбцов. Я согласился. В таблице очень мало изменений, поэтому приемлемо. Зато скорость выборки увеличилась раз в 5. Раньше от скана было не избавиться никак.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33022532
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AloisЯ пользовался. Он один раз посоветовал создать индекс из 7-ми столбцов. Я согласился. В таблице очень мало изменений, поэтому приемлемо. Зато скорость выборки увеличилась раз в 5. Раньше от скана было не избавиться никак.
http://www.sql.ru/articles/mssql/03013101Indexes.shtml#16_3
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33023942
Alois
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понял, что этой ссылкой Вы хотели сказать?
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #33024320
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AloisНе понял, что этой ссылкой Вы хотели сказать?Только то, что такое описано в литературе и известно под термином композитный (покрывающий) индекс и то, какие существуют рекомендации по его построению.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Устройство кластерного индекса
    #40089600
inevity
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Smirnov Anton

на самом деле он ничего не хранит в смысле дублирования
просто корневые страницы этого кластерного индекса и есть сама таблица

Вы хотели сказать концевые(листья), а не корневые.
...
Рейтинг: 0 / 0
Устройство кластерного индекса
    #40089602
inevity
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChA
это просто естественное следствие из главной задачи кластерного индекса - минимизация операций чтения при типичных выборках данных.
Ключевое слово "просто". По сути это знают все, т.к. это очевидно. И строятся эти индексы исходя из этой задачи. Вот только построение индексов по полям, которые будут приводить к постоянной перестройке индекса, приводит к дилемме. Возможно, не всегда хорошо делать кластерный по "канону"("просто" смотрим по ситуации). Но это ладно, меня смущает, то если человек знает ответ, то зачем умничать не давая конкретного ответа? Тем более ссылки давать, где будет не понятна мысль. "Просто" скажите свою мысль своими словами, без придирок, выпадов и прочего, что тратит время друг друга, включая необходимость ответов по 10 раз проясняющих что же вы все хотели сказать. Мерле спасибо - предельно четкие ответы и полезные.
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Устройство кластерного индекса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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