|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Aleksey-Kно не нашел там (если читать все обсуждение)противоречий с тем, что я сказал: (для кластерного индекса выбираю, КАК ПРАВИЛО, PK (Primary Key), тип данных Integer со свойством IDENTITY(1,1)). Жаль, но на нет, и суда нет... Эта рекомендация, как правило, неверная, и было бы Вашим делом, если бы не предлагали следовать такому подходу остальным. P.S. Только не надо прикрываться банальностями, типа Aleksey-KНет правил без исключений.., но они (исключения) только подтверждают правила.Исключения, подтверждающие правила - это, IMHO, чушь, обычно говорит о том, что правило пора менять. P.P.S. Ничего личного. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2005, 15:37 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Какая кодировка на указанной странице??? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2005, 15:45 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Наконец-то прочитал. Опять задача у автора очень вырожденная. В комментариях к этой статье некий Олег Аксенов упомянул про JOIN. Очень кстати. Вывод по примеру п.1 статьи ИМХО некорректен. У автора страница данных была почти пустая. Поэтому там операции с данными оказались дешевыми. В моём же примере одна строка занимала треть страницы. Очень хороший совет насчет частых интенсивных инсертов в таблицу с кластерным индексом по ИД. Действительно, могут быть проблемы. Но общий вывод верен: думать надо всегда! Но думать можно, когда знаешь о чём. Если нет знаний по хранению данных и индексов, можно думать и пробовать сколько угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2005, 16:21 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
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. Ничего личного ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2005, 19:46 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Aleksey-KРекомендация по поводу PK Identity(1,1) INTEGER на самом деле очень верная. Я уверен,что 90 процентов посетителей этого сайта так и поступают, и если Вы не входите в их число, значит Вы теоретик. Массовость мнения не есть доказательство правильности этого мнения, не говоря уж о таком обобщении - 90%, да еще - сайта. Опять ведь общие слова... На этом форуме тема кластерных индексов поднимается периодически, в пределах месяца, максимум - двух. Каждый раз несутся одни и те же голословные, невесть откуда взявшиеся утверждения. Большинству более-менее грамотных проектировщиков БД эта тема уже просто надоела, повторять одно и то же - не самое интересное занятие. Если Вам и вправду интересна эта тема, то поищите на этом форуме темы, связанные с кластерным индексом. Поверьте, это будет очень познавательно, особенно если учесть, что Ваш опыт, судя по всему, идет от FoxPro и dbf-файлов... Aleksey-KКак правило, таблица факторов (не справочник) имеет несколько индексов для покрытия различных запросов и длинный кластерный ключ приведет в существенному росту всех остальных индексов. Есть случаи, когда кластерный индекс используют не для описанного мною (и BOL) варианта, но , как правило, эти таблицы и не имеют сурогатного PK (диапазон дат, как правило)Во-первых, ответьте сами себе на вопрос, зачем кластерный индекс существует в принципе, неужели только для того, чтобы данные в таблице сохранялись в том же порядке, в котором они добавлялись ? И факт того, что в MSSQL значение кластерного ключа включаются в остальные индексы (хорошо, что Вы об этом знаете) ровным счетом ничего не меняет. Из того, что желательно делать его как можно меньше, совершенно не следует, что clustered PK Identity(1,1) INTEGER - это лучший вариант. И особенно для таблицы фактов, Вы ведь ее имели в виду, нет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2005, 21:09 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
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 автор поминавшегося здесь блога ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2005, 01:39 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Для 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..." ) предлагаю его закончить. Каждый все равно останется при своем мнение, а истинна, как всегда, где-то между :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2005, 10:15 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
автор Не надо оскорблять уважаемое сообщество в том, что они не знают, что такое 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 очень сильно зависит от конкретных условий. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2005, 11:48 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Для Merle_ ! Да... спор глухого со слепым... Вы даже цитирую меня: (То есть у Вас 70% FK - это дата?) выводы делаете совсем не те, о чем идет речь в цитате. Я проста, хотел сказать следующее: Нельзя один общий (а поэтому не очень умный) совет - "Используйте ВСЕГДА кластерный индекс на PK" подменять другим, не менее общим (следовательно, не более умным) - "НИКОГДА не используете кластерный индекс для суррогатных PK" С большим уважением в Вашим регалиям, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2005, 13:25 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
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. Фактически - уже флейм, продолжать в таком духе не вижу смысла, делайте, как хотите, только другим не внушайте иллюзий... С уважением к Вашим регалиям. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2005, 14:19 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Весьма познавательно. я тут еще в хелпе вычитал: автор 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 таковым. Правда, по нему уникальных значений не более десятка наберется. Но зато по нему часто и сортировка и выборка. Верно ли я мыслю? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2005, 19:01 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Aleksey-K Нет не верно.. Сервер помещает в этом случае в страницы данных ссылку на новое место строки (point forward ), и следовательно, указатель на нее из не листьевого уровня не надо изменять. С уважением, Алексей. forwarding pointer применяется тогда, когда строка в куче при апдейте вынуждена уехать на новую страницу (например, стала больше и не помещается на старой). Таким образом некластерные индексы не надо перестраивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2005, 11:41 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
ShurgenzВерно ли я мыслю?Логика есть, только не забывайте о том, что в MSSQL кластерный индекс рекомендуется делать уникальным. Если это не сделаете сами, то сервер сделает это за Вас, добавляя, не несущий никакой другой смысловой нагрузки, кроме "уникализации", "хвост". Это можно сделать, например, путем включения PK в конец кластерного индекса, что-то вроде (Rng10, ID), или других значений, обеспечивающих "уникализацию". В общем, экспериментируйте... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2005, 13:16 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
ChA ShurgenzВерно ли я мыслю?Пара добавлений, на всякий случай, к предыдущему посту. 1. Явная "уникализация" кластерного индекса обязательно должна сопровождаться словом UNIQUE в его определении. Т.е., типа Код: plaintext
2. Значения кластерного индекса будут также включатся во все некластерные индексы или ограничения, поэтому кроме минимизации размера кластерного "значения" (в пределах ~десятка байт, желательно, но не критично), хорошо чтобы "хвост", добавляемый для "уникализации" был "удачным", т.е., с наибольшей вероятностью востребованным (covered)... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2005, 13:37 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Действительно, познавательно. Да и вообще здорово, когда на работу есть техническое задание, и программисты приступают к работе, когда оно подписано высшим руководством (на уровне информатизации, конечно). А реалии таковы, что сегодня хочу так, завтра - также, но с мааааленьким изменением, а послезавтра - хочу уже вот так. В итоге после полугода таких разработок рабочие таблица(ы) получаются набитыми такой информацией, что индексы вообще не помогают. Куча запросов на разные столбцы и их наборы, куча справочных (не FK !) и денормализовочных столбцов. А времени на перепроектирование уже нет. Уважаемые Cha, Aleksey и другие опытные разработчики. Спасибо вам за "выданные" сведения. Они помогут, например, найти побольше аргументов, дающих возможность получить от руководства больше времени на проектирование базы и приложений, а не на слепое программирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2005, 09:50 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Статья, конечно, интересная и правильная. Но дело в том, что делать кластерный индекс для диапазонных выборок выгодно тогда, когда можно четко определить, что такие выборки составляют большинство запросов к таблице. Если же существуют десятки выборок по 3-4 полям - картина размывается, и премущества такого подхода практически теряются. авторИ вообще делать индексы по числовым данным - кол-во, суммы, цены и т.п. (исключая целочисленные идентификаторы, обычно - суррогатные), в большинстве случаев смысла нет Вы имели в виду именно кластерные индексы? В противном случае, поясните, пжста - почему это по числовым данным строить индексы вы считаете не эффективным. Nobody faults but mine... (LZ) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2005, 11:40 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Alois А реалии таковы, что сегодня хочу так, завтра - также, но с мааааленьким изменением, а послезавтра - хочу уже вот так. В итоге после полугода таких разработок рабочие таблица(ы) получаются набитыми такой информацией, что индексы вообще не помогают вроде как в таких случаях Index tuning master советуют. Судя по документации - вещь хорошая, кто-нибудь ей действительно пользовался ? А то у меня руки не доходят проверить. Много слышал дурных отзывов о данной штуке, может у кого есть положительные впечатления ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2005, 18:19 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
StalkerSвроде как в таких случаях Index tuning master советуют. Судя по документации - вещь хорошая, кто-нибудь ей действительно пользовался ? А то у меня руки не доходят проверить. Много слышал дурных отзывов о данной штуке, может у кого есть положительные впечатления ?Только не master, а Wizard Чпок ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2005, 06:52 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Я пользовался. Он один раз посоветовал создать индекс из 7-ми столбцов. Я согласился. В таблице очень мало изменений, поэтому приемлемо. Зато скорость выборки увеличилась раз в 5. Раньше от скана было не избавиться никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2005, 10:26 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
AloisЯ пользовался. Он один раз посоветовал создать индекс из 7-ми столбцов. Я согласился. В таблице очень мало изменений, поэтому приемлемо. Зато скорость выборки увеличилась раз в 5. Раньше от скана было не избавиться никак. http://www.sql.ru/articles/mssql/03013101Indexes.shtml#16_3 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2005, 10:42 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Не понял, что этой ссылкой Вы хотели сказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2005, 17:47 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
AloisНе понял, что этой ссылкой Вы хотели сказать?Только то, что такое описано в литературе и известно под термином композитный (покрывающий) индекс и то, какие существуют рекомендации по его построению. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2005, 06:59 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
Smirnov Anton на самом деле он ничего не хранит в смысле дублирования просто корневые страницы этого кластерного индекса и есть сама таблица Вы хотели сказать концевые(листья), а не корневые. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 02:10 |
|
Устройство кластерного индекса
|
|||
---|---|---|---|
#18+
ChA это просто естественное следствие из главной задачи кластерного индекса - минимизация операций чтения при типичных выборках данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 02:53 |
|
|
start [/forum/topic.php?fid=46&msg=33019829&tid=1684426]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
126ms |
get topic data: |
8ms |
get forum data: |
1ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 231ms |
0 / 0 |