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

Откуда:
Сообщений: 450
Доброго времени суток!
Выполнил такой запрос
sp_spaceused 'MyTable'

и получил результат
name	   rows	          reserved	        data	 index_size	unused
MyTable	 2748415    	228160 KB	50896 KB	172896 KB	4368 KB

Получается, что индекс занимает места больше. чем данные?
13 авг 09, 15:23    [7534139]     Ответить | Цитировать Сообщить модератору
 Re: Индекс занимает места больше, чем данные...  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36800
Фрагментированые индексы запросто могут.

Сообщение было отредактировано: 13 авг 09, 15:24
13 авг 09, 15:24    [7534150]     Ответить | Цитировать Сообщить модератору
 Re: Индекс занимает места больше, чем данные...  [new]
Glory
Member

Откуда:
Сообщений: 104760
EXEC sp_spaceused @updateusage = N'TRUE'
EXEC sp_spaceused 'MyTable'
13 авг 09, 15:24    [7534152]     Ответить | Цитировать Сообщить модератору
 Re: Индекс занимает места больше, чем данные...  [new]
Volodya
Member

Откуда:
Сообщений: 450
После выполнения процедур информация по распределению данных не изменилась. Ухудшает ли производительность использование такого индекса?

CREATE TABLE [dbo].[t_MelRotate](
	[sub_id] [int] NOT NULL,
	[mel_id] [int] NOT NULL
) ON [PRIMARY]


CREATE UNIQUE NONCLUSTERED INDEX [IX_t_MelRotate] ON [dbo].[t_MelRotate] 
(
	[sub_id] ASC,
	[mel_id] ASC
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
13 авг 09, 15:33    [7534231]     Ответить | Цитировать Сообщить модератору
 Re: Индекс занимает места больше, чем данные...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Volodya
После выполнения процедур информация по распределению данных не изменилась. Ухудшает ли производительность использование такого индекса?

- Значит ваш индекс действительно занимает столько места
- Производительность INSERT-а определенно ухудшается
13 авг 09, 15:37    [7534263]     Ответить | Цитировать Сообщить модератору
 Re: Индекс занимает места больше, чем данные...  [new]
iljy
Member

Откуда:
Сообщений: 8711
Volodya
После выполнения процедур информация по распределению данных не изменилась. Ухудшает ли производительность использование такого индекса?

CREATE TABLE [dbo].[t_MelRotate](
	[sub_id] [int] NOT NULL,
	[mel_id] [int] NOT NULL
) ON [PRIMARY]


CREATE UNIQUE NONCLUSTERED INDEX [IX_t_MelRotate] ON [dbo].[t_MelRotate] 
(
	[sub_id] ASC,
	[mel_id] ASC
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]


странный вы человек - создавать НЕКЛАСТЕРНЫЙ индекс, включающий ВСЕ колонки. Я бы понял еслиб их было несколько с разным порядком полей, но у вас я так понимаю он один?
13 авг 09, 15:41    [7534303]     Ответить | Цитировать Сообщить модератору
 Re: Индекс занимает места больше, чем данные...  [new]
Volodya
Member

Откуда:
Сообщений: 450
Спасибо.
13 авг 09, 15:41    [7534306]     Ответить | Цитировать Сообщить модератору
 Re: Индекс занимает места больше, чем данные...  [new]
Volodya
Member

Откуда:
Сообщений: 450
досталось в наследство, сейчас буду переделывать :)
13 авг 09, 15:42    [7534325]     Ответить | Цитировать Сообщить модератору
 Re: Индекс занимает места больше, чем данные...  [new]
ererererer1
Member

Откуда:
Сообщений: 31
ну все нормально - там еще ccылка на rowid. странно в той таблице можно было кластерный сделать по двум полям - если он там был нужен. переделывайте - только сначала запросы посмотрите к таблицам
13 авг 09, 21:00    [7536040]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить