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

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

--Формат
set @Cmd='bcp "TRANSNAVI.dbo.tbBaseNariad_arx" format '+@PathStr+'BN'+@NariadStr+'.dat -b 100 -m 10 -c -C RAW -t; -f'+@BasePath+'BN.fmt -T'
exec @Result = master.dbo.xp_cmdshell @Cmd,NO_OUTPUT
if @Result<>0 return(-3)
--Таблица
set @Cmd='bcp "select * from TRANSNAVI.dbo.tbBaseNariad_arx where ND_Identificator='+Cast(@ND_Identificator as varchar)+'" queryout '+@PathStr+'BN'+@NariadStr+'.dat -b 100 -m 10 -c -C RAW -t; -T'
exec @Result = master.dbo.xp_cmdshell @Cmd,NO_OUTPUT
if @Result<>0 return(-3)

во всех таблицах есть индекс ND_Identificator, и во всех запросах подобных есть where ND_Identificator.

в процедуре таких запросов на 20 таблиц, 3.5-4 часа выгружаются, в результате файлы созданные весят примерно 550мб. подскажите что с этим сделать? неможет быть чтобы 500мб так долго обрабатывались.

Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
13 июл 09, 04:51    [7406479]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса. bcp  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
А план запроса покажите.
13 июл 09, 06:21    [7406491]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса. bcp  [new]
kampuz
Member

Откуда: Красноярск
Сообщений: 96
tpg,

извените но я не понял.
master.dbo.xp_cmdshell @Cmd,NO_OUTPUT ?? то что находится в @Cmd=select * from TRANSNAVI.dbo.tbBaseNariad_arx where ND_Identificator=число, делает поиск по индексу и больше ничего.

в некоторых таблицах индекс полю ND_Identificator включен в пару составных индексов и стоит на первом месте. одна таблица гигов 13 весит и ~300мб из 550мб выгрузки составляет инфа из нее. может причина эти составные индексы?

выполняется эта процедура ночью, замеры записываю о времени выполнения в табличку.
13 июл 09, 07:49    [7406520]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса. bcp  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
kampuz
tpg,

извените но я не понял.
master.dbo.xp_cmdshell @Cmd,NO_OUTPUT ?? то что находится в @Cmd=select * from TRANSNAVI.dbo.tbBaseNariad_arx where ND_Identificator=число, делает поиск по индексу и больше ничего...
Имнно, самого запроса, то что находится в @Cmd.
Если пишете звездочку (*) в запросе, а по ND_Identificator индекс некластерный, то там будет и поиск по закладкам...
Врочем, возможно и кластерный не поможет, т.к. выборка идет по всем столбца, а столбцы сами по себе "широкие"...
13 июл 09, 08:13    [7406550]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса. bcp  [new]
kampuz
Member

Откуда: Красноярск
Сообщений: 96
tpg,

а сама утилита bcp не может работать медленно? может посоветуете чтонибудь взамен? данные которые она выгружает из архивных таблиц уже мало кому понадобятся на всякий случай сохраняются на винт в текстовые файлы, чтобы таблицы итак большие не росли.
13 июл 09, 09:07    [7406639]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса. bcp  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
kampuz
может посоветуете чтонибудь взамен?
Ну, в 2005 появиласьутилита sqlcmd...
13 июл 09, 09:49    [7406783]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса. bcp  [new]
pr0ger
Member

Откуда: Москва
Сообщений: 1933
попробуйте убрать параметр "-b 100"
13 июл 09, 11:07    [7407258]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить