Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2017.11.12;
Скачать: [xml.tar.bz2];

Вниз

Блокировка в SQL   Найти похожие ветки 

 
miau   (2011-09-08 12:23) [0]

Уважаемые мастера, столкнулся с непонятной хренью, и не знаю, как её забарывать.

Суть проблемы такая:
Есть небольшая табличка, 7 столбцов, а число строк редко переваливает за 10. Когда пользователь открывает форму редактирования, туда вносится строка. Когда форма закрывается, строка удаляется.
Всё хорошо работало, пока не перешли с SQL-2000 на SQL-2008. Потом началась полная хрень: где-то раз на три дня таблица блокируется так, что внести в неё запись можно, прочитать через (nolock) можно, а удалить или прочитать без флага (nolock) не выходит.
Единственным выходом пока является стоп-старт сервера. Есть ли у кого-нибудь мысли, в чём может быть дело?


 
OW ©   (2011-09-08 12:39) [1]

ADOTable не юзать.
в свойствах соединения внимательно с режимом

определить кто блокирует
select * from sys.sysprocesses
where blocked <> 0

потом, узнать его(их) sql-запрос
dbcc inputbuffer(spid полученного на шаге 1)

потом смотря что видим


 
miau   (2011-09-08 12:49) [2]


> ADOTable не юзать

Не юзаю. Только ADOQuery и ADOStoredProc.

> в свойствах соединения внимательно с режимом

А что там может быть не то, просветите ламера?

> определить кто блокирует

Спасибо, буду смотреть, как повесятся.


 
OW ©   (2011-09-08 12:53) [3]


> А что там может быть не то, просветите ламера?

ну, это..
{ TADOConnection }

 TConnectMode = (cmUnknown, cmRead, cmWrite, cmReadWrite, cmShareDenyRead,
   cmShareDenyWrite, cmShareExclusive, cmShareDenyNone);

 TConnectOption = (coConnectUnspecified, coAsyncConnect);

 TCursorLocation = (clUseServer, clUseClient);

 TCursorType = (ctUnspecified, ctOpenForwardOnly, ctKeyset, ctDynamic,
   ctStatic);

лишнего не просить, в смысле


 
Кщд   (2011-09-08 16:46) [4]

>miau   (08.09.11 12:23)  
commit ставьте


 
miau   (2011-09-08 16:57) [5]


> commit ставьте


Там нет транзакций, объявленных через BEGIN TRANSACTION.


 
Кщд   (2011-09-08 20:38) [6]

>miau   (08.09.11 16:57) [5]
вы данные внетранзакционно вставляете?
научите?
и, конечно, код не показывайте


 
SQLEX ©   (2011-09-08 22:06) [7]

commit явный нужен если в св-ах стоит не автоматическая транзакция, или она начата явно.
иначе она и так начинается автоматически и автоматически завершается тоже.


 
Кщд   (2011-09-08 22:23) [8]

>SQLEX ©   (08.09.11 22:06) [7]
откуда блокировки?
либо commit, либо непоказанный код, либо комбинация.
лично я предлагаю ТС не читать про транзакции и рестартовать сервер из-за блокировок в таблице с десятью записями, ибо очевидно, что во всём виноват MS


 
OW ©   (2011-09-09 08:34) [9]


> Кщд   (08.09.11 22:23) [8]
>
> >SQLEX ©   (08.09.11 22:06) [7]
> откуда блокировки?
> либо commit, либо непоказанный код, либо комбинация.

100%
Но откуда уверенность, что именно этого приложения?
Надо выяснить кто блокирует сначала


 
OW ©   (2011-09-09 09:15) [10]


> определить кто блокирует
> select * from sys.sysprocesses
> where blocked <> 0


а потом можно
kill spid_полученного_соединения и сидим ждем, кто позвонит с проблемой "я работала, а тут все перестало показываться почему-то "
Отвечаем, что понятия не имеем почему же это так произошло и пытаем что было запущено и что при этом делалось. Потом звоним автору и говорим, что он балбес и при таких-то действиях такой-то программы таблица у него блокируется. И пусть разбирается сам :)

Шутка.


 
Anatoly Podgoretsky ©   (2011-09-09 09:20) [11]

> OW  (09.09.2011 08:34:09)  [9]

> Надо выяснить кто блокирует сначала

А чего тут выяснять и так ясно кто.


 
miau   (2011-09-13 14:12) [12]

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


 
DiamondShark ©   (2011-09-13 14:47) [13]


> miau   (13.09.11 14:12) [12]
> Помогло уничтожение индексов на таблице.

Таракан слышит ногами.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2017.11.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.002 c
1-1354822431
Pcrepair
2012-12-06 23:33
2017.11.12
Две версии Функции. что выбрать?


3-1315470203
miau
2011-09-08 12:23
2017.11.12
Блокировка в SQL


2-1450677845
ВладОшин
2015-12-21 09:04
2017.11.12
подскажите обратную формулу


2-1449667867
lewka
2015-12-09 16:31
2017.11.12
Очистка Twebbrowser


15-1465507801
Юрий
2016-06-10 00:30
2017.11.12
С днем рождения ! 10 июня 2016 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский