Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Insert эффективнее на кластерном индексе или на куче?  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
Всегда думал что инсерт эффективнее без кластерного индекса, ведь все что нужно просто сложить запись в любое доступное место в куче, а в случае кластерного индекса строку возможно надо будет втискивать в середину индекса сдвигая при этом остальные записи.
Но Кален Дилейни однако пишет следующее:

although locating space in which to do an INSERT is relatively efficient using the PFS and
IAM, because the location of a row (on INSERT) is not defined, determining where to place a
row within a heap is usually less efficient than if the table has a clustered index.


возможно она имеет ввиду случай когда записи вставляются по возрастанию, но даже в этом случае почему вдруг вставлять в кучу будет менее эффективно?
6 мар 13, 07:14    [14017348]     Ответить | Цитировать Сообщить модератору
 Re: Insert эффективнее на кластерном индексе или на куче?  [new]
aleks2
Guest
stenford
Всегда думал что инсерт эффективнее без кластерного индекса


Писатели пишут - читатели читают. Мыслители - размышляют.

Мож она засмотрелась в окошко - вот и написала фигню.
Да и термин "эффективнее" отнюдь не означает "быстрее". Уточнять нада "эффективнее, чем ??? и по какому критерию".
6 мар 13, 08:01    [14017407]     Ответить | Цитировать Сообщить модератору
 Re: Insert эффективнее на кластерном индексе или на куче?  [new]
qow
Member [заблокирован]

Откуда:
Сообщений: 38
stenford
Но Кален Дилейни однако пишет следующее:

although locating space in which to do an INSERT is relatively efficient using the PFS and
IAM, because the location of a row (on INSERT) is not defined, determining where to place a
row within a heap is usually less efficient than if the table has a clustered index.

возможно она имеет ввиду случай когда записи вставляются по возрастанию, но даже в этом случае почему вдруг вставлять в кучу будет менее эффективно?

Интересно, а что она пишет абзацем-другим выше?
6 мар 13, 09:10    [14017651]     Ответить | Цитировать Сообщить модератору
 Re: Insert эффективнее на кластерном индексе или на куче?  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
qow
Интересно, а что она пишет абзацем-другим выше?


When a table has no clustered index—that is, when the table is a heap—a new row is always
inserted wherever room is available in the table. In Chapter 3, you learned how IAMs keep
track of which extents in a fi le already belong to a table and in Chapter 5, you saw how the
PFS pages indicate which of the pages in those extents have available space. If no pages with
space are available, SQL Server tries to fi nd unallocated pages from existing uniform extents
348 Microsoft SQL Server 2008 Internals
that already belong to the object. If none exists, SQL Server must allocate a whole new extent
to the table. Chapter 3 discussed how the Global Allocated Maps (GAMs) and Shared Global
Allocation Maps (SGAMs) are used to fi nd extents available to be allocated to an object. So,
although locating space in which to do an INSERT is relatively effi cient using the PFS and
IAM, because the location of a row (on INSERT) is not defi ned, determining where to place a
row within a heap is usually less effi cient than if the table has a clustered index.
6 мар 13, 09:38    [14017799]     Ответить | Цитировать Сообщить модератору
 Re: Insert эффективнее на кластерном индексе или на куче?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
stenford
determining where to place a row within a heap is usually less efficient than if the table has a clustered index.

Где здесь говорится насчёт "вставлять в кучу будет менее эффективно"?
6 мар 13, 11:25    [14018394]     Ответить | Цитировать Сообщить модератору
 Re: Insert эффективнее на кластерном индексе или на куче?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Гость333
stenford
determining where to place a row within a heap is usually less efficient than if the table has a clustered index.

Где здесь говорится насчёт "вставлять в кучу будет менее эффективно"?
Поиск свободного места все равно по сути является неотъемлимой частью операции insert.
7 мар 13, 03:10    [14022871]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить