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

Откуда:
Сообщений: 59
Приложение (1С) при старте проверяет режим сортировки символов в базе данных путем нехитрой конструкции:

Create table #__order (ch char(1))
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
...
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'я'.

Так вот, оказалось что в-основном (при низкой нагрузке со стороны других пользователей) это происходит быстро.

А вот если пользователей становится побольше определенного порога с одновременно возрастающей активностью, то сервер зависает на первой вставке в таблицу #__order.
Насколько я понимаю, суть этого зависания надо искать определенно не в механизмах 1С, а где-то в блокировках сервера. Еще один вариант - "отучить" 1С делать такую проверку путем патчинга bkend.dll, но это не стоит обсуждать в текущем разделе форума.

Достоверно определено, что иницирует ступор именно текущий (стартующий) процесс.
Явление как правило сопровождается резким увеличением очереди диска на запись. Причем чем сильнее активность других пользователей, тем более сильный взлет очереди (счетчик показывает увеличение 20 до 150).

Уважаемые гуру, подскажите, как понять что происходит?
2 сен 11, 11:22    [11216884]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35380
Блог
Этот скрипт выполяется 1 раз при запуске сервера приложений, или при старте каждого клиента?
2 сен 11, 11:47    [11217053]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
Критик
Этот скрипт выполяется 1 раз при запуске сервера приложений, или при старте каждого клиента?

Нет, в системе нет сервера приложений, скрипт выполняется каждый раз при старте клиента
2 сен 11, 15:14    [11219024]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 852
Александр Дж.,

А что происходит с таблицей потом? Каков размер базы tempdb и каковы параметры приращения этой базы?
2 сен 11, 19:11    [11220675]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
ивании
Guest
1C неподражаема как всегда !!! Вместо прямого чтения колэйшена базы, какой-то костыль
2 сен 11, 19:30    [11220765]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
ивании
Guest
...и спорим, они не подозревают что tempDB может иметь колейшен и следно сортировку отличную от других баз.
2 сен 11, 19:32    [11220772]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
flexgen
Александр Дж.,

А что происходит с таблицей потом?


потом
select ch from #__order order by ch
а потом
Drop table #__order
2 сен 11, 20:27    [11221044]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
flexgen
Каков размер базы tempdb и каковы параметры приращения этой базы?


Размер файлов tempdb - 2 Гб, практически не растет...
Основная БД - 134 Гб
2 сен 11, 20:40    [11221094]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
.ждлшгорав
Guest
Вполне возможно,
что это происходит одновременно (данные запросы и рост очереди к диску),
но не являются причиной и следствием.
Лучше смотреть профайлером запросы, которые имеют большое кол-во операций io.
4 сен 11, 13:08    [11223907]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
.ждлшгорав
Вполне возможно,
что это происходит одновременно (данные запросы и рост очереди к диску),
но не являются причиной и следствием.
Лучше смотреть профайлером запросы, которые имеют большое кол-во операций io.


Вполне возможно, что возрастание очереди диска - совпадение.
Больше всего, конечно, интересует зависание, которое, как многократно подтверждается, инициируется стартующим клиентом, причем он останавливается (как показывает профайлер) именно в описанном месте. Как будто ему кто-то другой мешает выполнить очередную инструкцию
4 сен 11, 17:11    [11224320]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
тормозит вставляя
Guest
Александр Дж.
Вполне возможно, что возрастание очереди диска - совпадение.

гораздо более возможно, что заполнение таблички с другой зависающей активностью совпадает.
и трейс в студию. с фильтром по хосту.
5 сен 11, 11:28    [11227003]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
+
select 504,c.name,c.description,c.definition from master.dbo.syscharsets c where c.id = convert(tinyint, databasepropertyex ( db_name() , 'sqlcharset'))
go
Select * from master..sysdatabases where name='O_AnalitOpt'
go
exec sp_dboption 'O_AnalitOpt', 'single user', 'false'
go
exec sp_dboption 'O_AnalitOpt', 'select into/bulkcopy', 'false'
go
Use O_AnalitOpt
go
Select COUNT(*) from master..sysprocesses where dbid=DB_ID('O_AnalitOpt') and program_name='1CV7'
go
set implicit_transactions on 
go
Select CONNECTUUID from _1SCONNECT(TABLOCKX HOLDLOCK)
go
IF @@TRANCOUNT > 0 COMMIT TRAN
go
set implicit_transactions off 
go
SET DATEFIRST 1
go
Select 1 where 'A'='a'
go
Create table #__order (ch char(1))
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '	'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '
'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '
'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ' '
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '!'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '"'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '#'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '$'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '%'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '&'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '('
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ')'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '*'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '+'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ','
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '-'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '.'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '/'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '0'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '1'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '2'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '3'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '4'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '5'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '6'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '7'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '8'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '9'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ':'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ';'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '<'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '='
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '>'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '?'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '@'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'A'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'B'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'C'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'D'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'E'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'F'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'G'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'H'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'I'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'J'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'K'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'L'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'M'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'N'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'O'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'P'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Q'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'R'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'S'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'T'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'U'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'V'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'W'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'X'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Y'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Z'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '['
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '\'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ']'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '^'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '_'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '`'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'a'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'b'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'c'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'd'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'e'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'f'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'g'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'h'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'i'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'j'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'k'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'l'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'm'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'n'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'o'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'p'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'q'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'r'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 's'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 't'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'u'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'v'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'w'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'x'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'y'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'z'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '{'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '|'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '}'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '~'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ''
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ђ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ѓ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '‚'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ѓ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '„'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '…'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '†'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '‡'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '€'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '‰'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Љ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '‹'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Њ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ќ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ћ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Џ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ђ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '‘'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '’'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '“'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '”'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '•'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '–'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '—'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '˜'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '™'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'љ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '›'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'њ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ќ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ћ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'џ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', ' '
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ў'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ў'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ј'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '¤'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ґ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '¦'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '§'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ё'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '©'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Є'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '«'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '¬'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '­'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '®'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ї'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '°'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '±'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'І'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'і'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ґ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'µ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '¶'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '·'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ё'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '№'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'є'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', '»'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ј'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ѕ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ѕ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ї'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'А'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Б'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'В'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Г'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Д'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Е'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ж'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'З'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'И'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Й'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'К'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Л'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'М'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Н'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'О'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'П'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Р'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'С'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Т'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'У'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ф'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Х'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ц'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ч'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ш'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Щ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ъ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ы'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ь'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Э'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Ю'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'Я'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'а'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'б'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'в'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'г'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'д'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'е'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ж'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'з'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'и'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'й'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'к'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'л'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'м'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'н'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'о'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'п'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'р'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'с'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'т'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'у'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ф'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'х'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ц'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ч'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ш'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'щ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ъ'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ы'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ь'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'э'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'ю'
go
exec sp_executesql N'insert into #__order values(@P1)', N'@P1 char(1)', 'я'
go
select ch from #__order order by ch
go
Drop table #__order
go
Select * from _1SSYSTEM(NOLOCK)
go
Select * from _1SSYSTEM(NOLOCK)
go
declare @P1 int
set @P1=1
declare @P2 int
set @P2=180150000
declare @P3 int
set @P3=2
declare @P4 int
set @P4=2
declare @P5 int
set @P5=-1
exec sp_cursorprepexec @P1 output, @P2 output, NULL, N'Select * from _1SUSERS(UPDLOCK)', @P3 output, @P4 output, @P5 output
select @P1, @P2, @P3, @P4, @P5
go
exec sp_cursorfetch 180150000, 2, 0, 1
go
exec sp_cursorclose 180150000
go
declare @P1 int
set @P1=180150001
declare @P2 int
set @P2=2
declare @P3 int
set @P3=2
declare @P4 int
set @P4=-1
exec sp_cursorexecute 1, @P1 output, @P2 output, @P3 output, @P4 output
select @P1, @P2, @P3, @P4
go
exec sp_cursorfetch 180150001, 2, 0, 1
go
exec sp_cursor 180150001, 1, 1, N'', @USRSCNT = 96, @NETCHGCN = 409166
go
exec sp_cursorclose 180150001
go
Select * from _1SSYSTEM(NOLOCK)
go
Select * from _1SSYSTEM(NOLOCK)
go


примерно после этого уже появляется окно 1С

Сообщение было отредактировано: 5 сен 11, 13:09
5 сен 11, 11:39    [11227118]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
тормозит вставляя
Guest
Александр Дж.,

круто. с целым скриптом телепатить нужно меньше.
трейс будет?
5 сен 11, 11:42    [11227141]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
тормозит вставляя
Александр Дж.,

круто. с целым скриптом телепатить нужно меньше.
трейс будет?
5 сен 11, 11:49    [11227219]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
не получилось прикрепить файл, разместил вот здесь:
здесь трэйс
5 сен 11, 11:56    [11227299]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
тормозит вставляя
Guest
Александр Дж.,

к выбору трассируемых событий вы подошли творчески... может поэкспериментируете все-таки?

и попробуйте выяснить, как так: база больше ста гигов, а tempdb всего 2. может кто-то запрещает ей расти?
5 сен 11, 12:10    [11227430]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
тормозит вставляя
Александр Дж.,

к выбору трассируемых событий вы подошли творчески... может поэкспериментируете все-таки?


:) да, это настройка трассы по умолчанию
готов прислушаться к советам специалистов... какие события по идее надо отлавливать?

тормозит вставляя
и попробуйте выяснить, как так: база больше ста гигов, а tempdb всего 2. может кто-то запрещает ей расти?

а что может ей запрещать?
для обоих файлов в настройках стоит по-умолчанию "aotomatically grow file" > "by percent" > 10
на диске свободно 264 Гб

правда, несколько дней назад я ее перенес на другой диск... сервер создал файлы заново, может быть они еще не выросли?
5 сен 11, 13:07    [11227850]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
тормозит вставляя
Guest
Александр Дж.,

если воткнёте все event's сразу, ругать никто не будет. экспериментирование же-ж.

нужно было задать начальный размер сразу примерно такой, который будет использоваться в работе. гигов 20+

автор
несколько дней назад я ее перенес на другой диск

может в том диске и проблема?
5 сен 11, 13:13    [11227891]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
тормозит вставляя
может в том диске и проблема?

Я бы тоже так подумал, но было так:
сначала я заметил тормоза, отловил в профайлере задержку и открыл здесь тему, это было 1-2 сентября.
В пятницу днем я как раз перенес tempdb на другой диск и перезапустил сервер (в пятницу останов на 5 мин - это не так критично для пользователей).
Когда я писал про размер tempdb, это был уже другой диск.
Неисправность первоначального диска допустить сложно, потому что там как раз вся рабочая база и лежит... И ведет себя адекватно... по крайней мере не хуже чем раньше.
Сегодняшний вечер должен показать (если будет высокая нагрузка) - помог перенос tempdb или нет
5 сен 11, 14:33    [11228561]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
тормозит вставляя
нужно было задать начальный размер сразу примерно такой, который будет использоваться в работе. гигов 20+

спасибо за совет, сделаю
а из чего складывается размер tempdb?
из количества используемых временных таблиц?
если так, то понятно почему не растут файлы:
1) 1С работает с маленькими временными таблицами
2) продолжительность одного соединения не более 5-8 часов, а при отваливании клиента, как я понимаю, место в файле освобождается по другие таблицы?
5 сен 11, 14:38    [11228610]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
да, и утилиты raid-контроллера говорят, что все ок
5 сен 11, 14:39    [11228616]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
тормозит вставляя
Guest
Александр Дж.
а из чего складывается размер tempdb?

в BOL подробно все описано.
и для явно создаваемых временных таблиц, и просто как служебный ресурс в который сервер может сам что-то временно положить.
там же в BOL есть раздел troubleshooting.
5 сен 11, 14:54    [11228784]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
тормозит вставляя
в BOL подробно все описано.
и для явно создаваемых временных таблиц, и просто как служебный ресурс в который сервер может сам что-то временно положить.

Цитата из BOL насчет оптимизации tempdb:
BOL
Optimizing tempdb Performance
General recommendations for the physical placement and database options set for the tempdb database include:

Allow the tempdb database to automatically expand as needed. This ensures that queries that generate larger than expected intermediate result sets stored in the tempdb database are not terminated before execution is complete.


Set the original size of the tempdb database files to a reasonable size to avoid the files from automatically expanding as more space is needed. If the tempdb database expands too frequently, performance can be affected.


Set the file growth increment percentage to a reasonable size to avoid the tempdb database files from growing by too small a value. If the file growth is too small compared to the amount of data being written to the tempdb database, then tempdb may need to constantly expand, thereby affecting performance.


Place the tempdb database on a fast I/O subsystem to ensure good performance. Stripe the tempdb database across multiple disks for better performance. Use filegroups to place the tempdb database on disks different from those used by user databases.


А вот еще:
BOL
Expanding tempdb
By default, the tempdb database automatically grows as space is needed because the MAXSIZE of the files is set to UNLIMITED. Therefore, tempdb can continue growing until space on the disk that contains tempdb is exhausted. To prevent tempdb from growing without limits, set a MAXSIZE for tempdb by using the ALTER DATABASE statement or SQL Server Enterprise Manager.

Conversely, if tempdb has been set at a MAXSIZE, and you want to increase the size of tempdb, you must do one of the following:

Increase the size of the files in the default filegroup currently used by tempdb.


Add a new file to the default filegroup.


Allow the files used by tempdb to grow automatically.


Из этих цитат, видимо, следует, что tempdb имеет такой размер, какой необходим для выполнения скриптов. То есть если скрипты оперируют большими объемами данных, tempdb будет расти и при этом сервер будет "тупить". Если этого хочется избежать, надо увеличить tempdb заранее.
5 сен 11, 16:47    [11229917]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Вот это выполнено?

ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10de_1devconc/html/0db6063b-54a8-4fdf-a1ee-5ca5d438aadc.htm
Create as many files as needed to maximize disk bandwidth. Using multiple files reduces tempdb storage contention and yields significantly better scalability. However, do not create too many files because this can reduce performance and increase management overhead. As a general guideline, create one data file for each CPU on the server (accounting for any affinity mask settings) and then adjust the number of files up or down as necessary. Note that a dual-core CPU is considered to be two CPUs.
5 сен 11, 16:51    [11229960]     Ответить | Цитировать Сообщить модератору
 Re: тормоза при вставке строки во временную таблицу посредством sp_executesql  [new]
Александр Дж.
Member

Откуда:
Сообщений: 59
Гавриленко Сергей Алексеевич
Вот это выполнено?

ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10de_1devconc/html/0db6063b-54a8-4fdf-a1ee-5ca5d438aadc.htm
Create as many files as needed to maximize disk bandwidth. Using multiple files reduces tempdb storage contention and yields significantly better scalability. However, do not create too many files because this can reduce performance and increase management overhead. As a general guideline, create one data file for each CPU on the server (accounting for any affinity mask settings) and then adjust the number of files up or down as necessary. Note that a dual-core CPU is considered to be two CPUs.


прикольно, конечно, сделать столько файлов, сколько процессоров:)
а если только два диска, и на одном из них основная БД?
5 сен 11, 17:47    [11230452]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить