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

Откуда: Москва
Сообщений: 215
Есть список строк, 16000. строка длинной 20-30 символов, пусть даже фиксированной длины.
запрос типа:
select 'asd;gjsldfjgl' union all
select 'asd;gjsldfjgl' union all
.......
не проходит, ошибка:
Server: Msg 8621, Level 17, State 88, Line 8
Internal Query Processor Error: The query processor ran out of stack space during query optimization.
Задача: нужно заполнить временную таблицу (будет значит ещё insert #TMP)
строками (1 столбец) кол-вом ~ 16000.
select @@version
: Microsoft SQL Server 2000 - 8.00.2050 (Intel X86) Mar 7 2008 21:29:56 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
27 май 09, 08:57    [7232113]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Заполняйте не одной командой, а несколькими... Сервер вам так и намекает (чтение текста ошибок бывает полезно)...
27 май 09, 09:05    [7232132]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
DENIS_CHEL,

зайдите за миллионом!
27 май 09, 09:07    [7232141]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
iap,

на миллион записей... Что делать в случае миллионых строк?
27 май 09, 09:08    [7232146]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33364
Блог
Azvaal
на миллион записей... Что делать в случае миллионых строк?

хм, повторю)
Заполняйте не одной командой, а несколькими... Сервер вам так и намекает (чтение текста ошибок бывает полезно)...
27 май 09, 09:12    [7232155]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Azvaal
iap,

на миллион записей... Что делать в случае миллионых строк?
Так вставлять их небольшими порциями.

И откуда миллион-то берётся? Руками что ли вводится? Вы не из Китая часом?
Или, всё-таки, все строки в файле каком-нибудь лежат?
27 май 09, 09:17    [7232172]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
сделал по-другому

insert #TMP select 'adasfg'
insert #TMP select 'adasfg'
...........
Как-то по-извращенски получается... ИМХО
27 май 09, 09:18    [7232173]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
iljy
Guest
Azvaal,

у вас строки одинаковые чтоли? так сделайте вставку в цикле! по 1й записи, или по 200, в общем чтоб в insert влезало. а вообще - такие вещи вставляют из файла с помощью BULK INSERT или OPENROWSET
27 май 09, 09:35    [7232241]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5194
Azvaal
сделал по-другому

insert #TMP select 'adasfg'
insert #TMP select 'adasfg'
...........
Как-то по-извращенски получается... ИМХО



create table #tmp (st varchar(20))
go
insert into #tmp (st)
select replicate('!',20)
go 16000
select * from #tmp
go
27 май 09, 09:42    [7232279]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
komrad
create table #tmp (st varchar(20))
go
insert into #tmp (st)
select replicate('!',20)
go 16000
select * from #tmp
go
Azvaal
Microsoft SQL Server 2000 - 8.00.2050
А SQL Server Management Studio имеется?
27 май 09, 09:47    [7232306]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5194
iap
komrad
create table #tmp (st varchar(20))
go
insert into #tmp (st)
select replicate('!',20)
go 16000
select * from #tmp
go
Azvaal
Microsoft SQL Server 2000 - 8.00.2050
А SQL Server Management Studio имеется?


у меня или автора?

osql умеет, Management Studio 2005-8 тоже
Query Analyzer - не в курсе
27 май 09, 09:50    [7232320]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
komrad
Query Analyzer - не в курсе
Не умеет.
27 май 09, 09:52    [7232338]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5194
ну либо так


create table #tmp (st varchar(20))
go
insert into #tmp (st)
select top 16000 replicate('!',20)
from syscolumns sc1,
 syscolumns sc2
go 
select * from #tmp
go


в общем - вариантов много
27 май 09, 09:52    [7232343]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
komrad
iap
komrad
create table #tmp (st varchar(20))
go
insert into #tmp (st)
select replicate('!',20)
go 16000
select * from #tmp
go
Azvaal
Microsoft SQL Server 2000 - 8.00.2050
А SQL Server Management Studio имеется?
у меня или автора?
Вы же автору советуете. Значит, у него.
komrad
osql умеет, Management Studio 2005-8 тоже
Query Analyzer - не в курсе
Я в курсе. Не умеет.
27 май 09, 09:53    [7232347]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
Да нет, ребята, строки уникальные все... Так что не получится через цикл... А сервер находится ооочень удаленно и права дааааалко не админские :) Так что залить через файл - гемморой
27 май 09, 10:57    [7232825]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Azvaal
Да нет, ребята, строки уникальные все... Так что не получится через цикл... А сервер находится ооочень удаленно и права дааааалко не админские :) Так что залить через файл - гемморой

Гемморой вместо миллиона insert-ов написать один bulk insert ?
27 май 09, 11:02    [7232865]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
Glory,

Ога.. Там просто кучу людей спросить нужно будет, чтобы файл выложить хотя бы )
27 май 09, 11:39    [7233208]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Azvaal
Glory,

Ога.. Там просто кучу людей спросить нужно будет, чтобы файл выложить хотя бы )

А скрипт ваш эти люди откуда возмут ?
27 май 09, 11:40    [7233224]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5194
Azvaal
Glory,

Ога.. Там просто кучу людей спросить нужно будет, чтобы файл выложить хотя бы )


если у автора данные для инсерта можно загнать в excel,
то я бы сгенерировал аццкий скрипт (в excel) с инсертами и прогнал его не пользуясь файлом
27 май 09, 11:41    [7233237]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
komrad,

Дружище, затем и обратился сюда, ища более легкого "путя", чтобы скрипт не работал 8 минут на 16000 инсёртов...
27 май 09, 12:03    [7233465]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
Glory
Azvaal
Glory,

Ога.. Там просто кучу людей спросить нужно будет, чтобы файл выложить хотя бы )

А скрипт ваш эти люди откуда возмут ?


А скрипт я сам запущу в QA.
27 май 09, 12:04    [7233474]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Azvaal
Glory
Azvaal
Glory,

Ога.. Там просто кучу людей спросить нужно будет, чтобы файл выложить хотя бы )

А скрипт ваш эти люди откуда возмут ?


А скрипт я сам запущу в QA.

Хм. А что вам мешает тогда запустить у себя и утилиту bcp ??
27 май 09, 12:05    [7233481]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5194
Azvaal
komrad,

Дружище, затем и обратился сюда, ища более легкого "путя", чтобы скрипт не работал 8 минут на 16000 инсёртов...

пробовали принудительно обворачивать в транзакции по 3000-5000 инсертов ?
27 май 09, 12:08    [7233505]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
Glory,

Citrix, удаленное программное обеспечение. Все запускается даааалеко далеко ))
27 май 09, 12:09    [7233513]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на миллион...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
komrad
Azvaal
komrad,

Дружище, затем и обратился сюда, ища более легкого "путя", чтобы скрипт не работал 8 минут на 16000 инсёртов...

пробовали принудительно обворачивать в транзакции по 3000-5000 инсертов ?


Честно.. Скил не тот )) Если можно - дайте ссыль на что-нить почитать по-поводу оптимизации и т.п.
27 май 09, 12:10    [7233520]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить