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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BEGIN TRANSACTION вешает базу, BEGIN TRANSACTION вешает базу 
:(
    Опции темы
MadCoder
  Дата 4.2.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

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



Здравствуйте!

Подскажите, как избежать подвисания базы при commit'е или rollback'е базы.
Код следующий:
Код

BEGIN TRANSACTION;
GO
-- Выборка, сортировка, обработка и вставка данных (~6-10 тыс строк, без BEGIN TRANSACTION код выполняется 3-5 минут).
-- КОНЕЦ КОДА
-- Проверяют на корректность внесенных данных (без транзакции код выполняется несколько секунд)

if (@contr_count = (select count(contr_num) from DB)) 
commit transaction
else
rollback transaction


Результат выполнения - пару минут все хорошо, потом в Messages пишет, что код выполнен и база подвисает минут на 10 (никто не может получить доступ), после чего данные commit'ятся.

Вопрос: как сделать выполнение begin transaction, commit и rollback незаметной для конечного пользователя, чтобы другие смогли работать с базой также, как обычно.
PM WWW ICQ   Вверх
Zioma
  Дата 4.2.2009, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Если пишет, что запрос выполнен - то он действительно выполнен с комитами и прочей лабудой.
Ежели после выполнения запроса возникают какие-то траблы с производительностью, то что-то тут не то ...

Какая версия сиквела? конфигурация сервера?
Желательно также посмотреть план выполнения.
Какая ситуация со свободным местом на дисках?

PM MAIL   Вверх
MadCoder
Дата 4.2.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

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



Цитата(Zioma @ 4.2.2009,  11:37)
Если пишет, что запрос выполнен - то он действительно выполнен с комитами и прочей лабудой.
Ежели после выполнения запроса возникают какие-то траблы с производительностью, то что-то тут не то ...

Какая версия сиквела? конфигурация сервера?
Желательно также посмотреть план выполнения.
Какая ситуация со свободным местом на дисках?

База данных Microsoft SQL Server 2005, сервис-пак накатывал, как точную сборку посмотреть не знаю (Microsoft SQL Server Management Studio    9.00.3042.00).

По месту:
MDF - 700 Мб.
LDF - 710 Мб (чищу периодически).
На момент выполнения на диске C: было 14 Гб свободно, а на диске с базой около 10 Гб.


Настроена репликация этой базы с другим сервером методом обновляемых подписок, принудительная, этот сервер является также и распространителем (distributor). Возможно, подвисание связано с пересылкой изменений на другой сервер? А без begin transaction она проходила в реальном времени построчно, что не вызывало подвисания. Но тогда как этого избежать?

Запущены след. службы:
user posted image

Это сообщение отредактировал(а) MadCoder - 4.2.2009, 12:03
PM WWW ICQ   Вверх
Zioma
  Дата 4.2.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(MadCoder @  4.2.2009,  10:02 Найти цитируемый пост)
как точную сборку посмотреть не знаю


Код

select @@version


Что касается твоей проблемы - то очевидно трабла связана с репликацией. Но, к сожалению, с репликацией не работал и особо помочь не смогу.

Единственное, что приходит на ум - отключить/приостановить репликацию и выполнить весь батч (с транзакциями). Если процесс пройдет без "залипания" сервака, то тады необходимо рыть BOL по настройке репликации в таких случаях.
PM MAIL   Вверх
MadCoder
Дата 4.2.2009, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

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



Версия:
Microsoft SQL Server 2005 - 9.00.3042.00 (X64)   Feb 10 2007 00:59:02   Copyright © 1988-2005 Microsoft Corporation  Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) 

Спасибо за помощь! Кто-нибудь может помочь с репликацией?
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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