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

Откуда: Київ
Сообщений: 10428
Делаю что-то такое:
create table tx
(
[id] [int] NOT NULL ,
[cat_id] [int] NOT NULL ,
PRIMARY KEY
(
[id]
)
)

insert into tx([id],cat_id)
select x.id,s.id
from pt p
inner join px x
on p.object_id=x.object_id
and p.d_id=x.d_id


Суть в следующем: сам селект работает 19 секунд и выбирает 500000 записей.
А вот инсерт вместе с селектом - работает 12 часов.

Это нормально?
Может каким нибудь другим путем пойти?
2 мар 05, 10:47    [1355041]     Ответить | Цитировать Сообщить модератору
 Re: INSERT ... SELECT - о скорости  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
1. Грохнуть индексы на табличке, куда вставляется, и после инсерта создать заново.
2. Посмотреть на счетчики - где идет главный тормоз. Возможно, дисковая очередь большая...
2 мар 05, 10:52    [1355070]     Ответить | Цитировать Сообщить модератору
 Re: INSERT ... SELECT - о скорости  [new]
Glory
Member

Откуда:
Сообщений: 104760
А вот инсерт вместе с селектом - работает 12 часов.

Это нормально?


x.id наверное шли в разнобой ? А кластерный индекс то навреное с fill factor 100 ?
2 мар 05, 10:52    [1355074]     Ответить | Цитировать Сообщить модератору
 Re: INSERT ... SELECT - о скорости  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
А вот инсерт вместе с селектом - работает 12 часов.

Это нормально?


x.id наверное шли в разнобой ? А кластерный индекс то навреное с fill factor 100 ?


Индекс один - по [id], кластерный, % заполнения стоит 0
2 мар 05, 11:07    [1355144]     Ответить | Цитировать Сообщить модератору
 Re: INSERT ... SELECT - о скорости  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Winnipuh
[quot Glory]А вот инсерт вместе с селектом - работает 12 часов.

Это нормально?


x.id наверное шли в разнобой ? А кластерный индекс то навреное с fill factor 100 ?


по поводу разнобоя:
может быть селект делать с сортировкой какой-нибудь?
2 мар 05, 11:08    [1355150]     Ответить | Цитировать Сообщить модератору
 Re: INSERT ... SELECT - о скорости  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Спасибо, Glory!
Спасибо, Breakneck!

Проблема в индексе: убрал индекс - все работает практически соизмеримо по времени с выборокой, шайтан!!!
2 мар 05, 11:15    [1355182]     Ответить | Цитировать Сообщить модератору
 Re: INSERT ... SELECT - о скорости  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ради интереса можете попробывать

create table tx
(
[id] [int] NOT NULL ,
[cat_id] [int] NOT NULL ,
PRIMARY KEY
(
[id]
) WITH FILLFACTOR = xx
)

Вместо xx попробуйте поставить значения от 50 до 90
2 мар 05, 11:18    [1355193]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить