Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ругачка SQLServer 2000, Конфликт блокировок тразакций 
:(
    Опции темы
lissoner
Дата 24.5.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



Пол жизни за помощь. Задолбала она меня уже. Кто нить знает в чём причина?

Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provaider for SQL Server : lock request time out period exceeded.
HRESULT=80040E31, SQLSTATE =HYT00 native=1222

по причине:
Microsoft OLE DB provider for SQL Server lock request time out period exceeded.
HRESULT=80040E31, SQLSTATE =HYT00 native=1222

подскажите пожалйста буду очень признателен..
 
PM MAIL   Вверх
Vit
Дата 24.5.2006, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Знаю... Блокировки сильные ставите, открываете dataset на долго и держите открытым, курсоры не закрываете или ещё чего-то... 


Малехо посмотреть можно здесь:
http://vingrad.ru/ART-DELPHI-002171

Кроме того, советы такие:

1. Поставить везде hint nolock где не требуется держать результат заблокированным:

Код

Select * from MyTable with (nolock)


2. Не вытаскивать селектом тех полей которые не нужны

3. Не вытаскивать много записей за раз

4. Не делать массивные Update/Delete которые затрагивают больше 1000 записей, если нужны - кусковать на несколько отдельных запросов

5. Играться индексами и кластерными индексами до тех пор пока запросы станут выполняться более или менее нормально, а не через задницу

А вообще чтоб ответить на вопрос хотелось бы более или менее чётко понять что вы пишете, на каком языке, каким доступом и немного инфы по базае данных - размеры, количество одновременных пользователей... 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
lissoner
Дата 24.5.2006, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



пользуемся 1с 8-версия размер базы 3гига кол-во ползователей 150 одновременно работают порядка 30-ти. 
PM MAIL   Вверх
Vit
Дата 24.5.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Чего там 1c делает с сервером - понятия не имею, но скорее всего идёт речь о неоптимальных блокировках и запросах. Запустите профайлер и посмотрите какие запросы блокируют, посмотрите на блокировки - кто кого блокирует... Вообще такие вещи решать достаточно сложно, или вы должны взять умную книжку по программированию MS SQL Server (что-нибудь типа Роберта Вьейра) и внимательно проштудировать главы об индексах, блокировках, ключах, ограничениях и т.п. на что уйдёт в лучшем случае пара недель, или надо вызывать толкового DBA. На расстоянии очень трудно что-то решить, слишком много всего может происходить - от "сильных" блокировок  до излишней фрагментации индексов, от нехватки места для tempdb до кривого железа... 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
lissoner
Дата 25.5.2006, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



Цитата

от нехватки места для tempdb до кривого железа...  


Вот  с железом стопудяче ни каких проблем нет а на счёт tempdb тут такая вещь сколько обьём ему не задавай он всё съедает есть ли предел? принудительно поставил ему гиг (база 3гига) 
PM MAIL   Вверх
Vit
Дата 25.5.2006, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Цитата(lissoner @  24.5.2006,  22:14 Найти цитируемый пост)
Вот  с железом стопудяче ни каких проблем нет а на счёт tempdb тут такая вещь сколько обьём ему не задавай он всё съедает есть ли предел? принудительно поставил ему гиг (база 3гига)  



Этого может быть очень мало если данные меняются часто и идут массивные Update/Delete/Select.


Советую начать смотреть с блокировок и запуска профайлера 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
lissoner
Дата 26.5.2006, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



вроде второй день ошибки нет увеличил tempdb до 2гиго и лог файл транзакций до гига 
тфу.тфу.тфу чтобы не зглазить благодарствую Vit-у  smile  
PM MAIL   Вверх
Vit
Дата 26.5.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Цитата(lissoner @  25.5.2006,  23:56 Найти цитируемый пост)
вроде второй день ошибки нет увеличил tempdb до 2гиго и лог файл транзакций до гига 
тфу.тфу.тфу чтобы не зглазить благодарствую Vit-у 




Бэкап организуй регулярный иначе лог транзакций будет расти неограниченно 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
ALKS
Дата 26.5.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 22.3.2006

Репутация: 1
Всего: 11



ну чтоб лог транзакций не рос неограниченно можно поставить "trunc. log on chkpt." c помощью sp_dboption. но это понятное дело, зависит от нужд.  
PM   Вверх
lissoner
Дата 26.5.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



то есть это дело можно автоматизировть? 
PM MAIL   Вверх
ALKS
Дата 27.5.2006, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 22.3.2006

Репутация: 1
Всего: 11



lissoner, автоматизировать можно что угодно. на то и DB Jobs smile 
PM   Вверх
lissoner
Дата 29.5.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



Упёрся в то что нужно поставить "trunc. log on chkpt." c помощью sp_dboption
и recovery interval 

где найти эту опцию ? 
PM MAIL   Вверх
ALKS
Дата 29.5.2006, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 22.3.2006

Репутация: 1
Всего: 11



Код

exec sp_dboption @dbname = 'MyDatabaseName', @optname = 'trunc. log on chkpt.', @optvalue = 'true'
go
 
PM   Вверх
lissoner
Дата 29.5.2006, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



что именно писать то я понял ну вот где не догоняю. 
PM MAIL   Вверх
lissoner
Дата 30.5.2006, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



А если это замутить через Jobs?
Цитата

exec sp_dboption @dbname = 'MyDatabaseName', @optname = 'trunc. log on chkpt.', @optvalue = 'true'
go


 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1392 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.