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

Откуда:
Сообщений: 50
Здравствуйте, с понедельник в базе начались "затыки"
ПО 65-70 000 локов

Сам только начинаю, вот и прошу помощи!

текст прилагаю одного из них:

exec sp_executesql N'SELECT
_Document410_VT9787_Q_000_T_001._Fld9801RRef AS f_1,
_Reference110._IDRRef AS f_2,
_Reference110._Description AS f_3,
_Reference71._IDRRef AS f_4,
_Reference71._Description AS f_5,
_Document410_VT9787_Q_000_T_001._Fld9836RRef AS f_6,
_Reference205._IDRRef AS f_7,
_Reference205._Description AS f_8,
_Reference154._IDRRef AS f_9,
_Reference154._Description AS f_10,
_Document410_VT9787_Q_000_T_001._Fld9808RRef AS f_11,
_Document410_VT9787_Q_000_T_001._Fld9794RRef AS f_12,
CAST(SUM(CAST(CAST(_Document410_VT9787_Q_000_T_001._Fld9797 AS NUMERIC(20,8)) * _Document410_VT9787_Q_000_T_001._Fld9799 / _Reference71._Fld1306 AS NUMERIC(15,3))) AS NUMERIC(21,3)) AS f_13,
MAX(#V8TblAli2_Q_000_T_003._Fld15951Balance) AS f_14,
MAX(#V8TblAli1_Q_000_T_002._Fld15951Balance) AS f_15,
MAX(#V8TblAli3_Q_000_T_004._Fld15880Balance) AS f_16,
MAX(#V8TblAli5_Q_000_T_006._Fld15916Balance) AS f_17,
MAX(#V8TblAli6_Q_000_T_007._Fld15916Balance) AS f_18,
CAST(0. AS NUMERIC(1,0)) AS f_19,
CAST(SUM(#V8TblAli4_Q_000_T_005._Fld15880Balance) AS NUMERIC(33,3)) AS f_20
FROM
_Document410_VT9787 _Document410_VT9787_Q_000_T_001 WITH(REPEATABLEREAD)
LEFT OUTER JOIN _Reference110 WITH(REPEATABLEREAD)
ON _Document410_VT9787_Q_000_T_001._Fld9801RRef = _Reference110._IDRRef
LEFT OUTER JOIN (
SELECT
#V8TblAli1_T._Fld15946RRef AS _Fld15946RRef,
#V8TblAli1_T._Fld15947RRef AS _Fld15947RRef,
#V8TblAli1_T._Fld15948RRef AS _Fld15948RRef,
#V8TblAli1_T._Fld15949RRef AS _Fld15949RRef,
#V8TblAli1_T._Fld15950RRef AS _Fld15950RRef,
CAST(SUM(#V8TblAli1_T._Fld15951Balance) AS NUMERIC(28,3)) AS _Fld15951Balance
FROM
(
SELECT
_AccumRegTotals15954._Fld15946RRef AS _Fld15946RRef,
_AccumRegTotals15954._Fld15947RRef AS _Fld15947RRef,
_AccumRegTotals15954._Fld15948RRef AS _Fld15948RRef,
_AccumRegTotals15954._Fld15949RRef AS _Fld15949RRef,
_AccumRegTotals15954._Fld15950RRef AS _Fld15950RRef,
CAST(_AccumRegTotals15954._Fld15951 AS NUMERIC(22,3)) AS _Fld15951Balance
FROM
_AccumRegTotals15954 WITH(SERIALIZABLE, UPDLOCK)
WHERE
_AccumRegTotals15954._Period = @P1 AND _AccumRegTotals15954._Fld15946RRef IN (@P2) AND _AccumRegTotals15954._Fld15947RRef IN (SELECT DISTINCT
_Document410_VT9787_Q_001_T_001._Fld9801RRef AS _Q_001_F_000RRef
FROM
_Document410_VT9787 _Document410_VT9787_Q_001_T_001 WITH(REPEATABLEREAD)
WHERE
_Document410_VT9787_Q_001_T_001._Document410_IDRRef = @P3) AND _AccumRegTotals15954._Fld15951 <> CAST(@P4 AS NUMERIC(1,0))
UNION ALL
SELECT
_AccumReg15945._Fld15946RRef AS _Fld15946RRef,
_AccumReg15945._Fld15947RRef AS _Fld15947RRef,
_AccumReg15945._Fld15948RRef AS _Fld15948RRef,
_AccumReg15945._Fld15949RRef AS _Fld15949RRef,
_AccumReg15945._Fld15950RRef AS _Fld15950RRef,
CAST(SUM(CASE
WHEN _AccumReg15945._RecordKind = CAST(0. AS NUMERIC(1,0))
THEN - _AccumReg15945._Fld15951
ELSE _AccumReg15945._Fld15951
END) AS NUMERIC(21,3)) AS _Fld15951Balance
FROM
_AccumReg15945 WITH(SERIALIZABLE, UPDLOCK)
WHERE
(_AccumReg15945._Period > @P5 OR
_AccumReg15945._Period = @P5 AND (_AccumReg15945._RecorderTRef > @P6 OR
_AccumReg15945._RecorderTRef = @P6 AND _AccumReg15945._RecorderRRef >= @P3)) AND _AccumReg15945._Period < @P1 AND _AccumReg15945._Active = @P7 AND _AccumReg15945._Fld15946RRef IN (@P2) AND _AccumReg15945._Fld15947RRef IN (SELECT DISTINCT
_Document410_VT9787_Q_001_T_001._Fld9801RRef AS _Q_001_F_000RRef
FROM
_Document410_VT9787 _Document410_VT9787_Q_001_T_001 WITH(REPEATABLEREAD)
WHERE
_Document410_VT9787_Q_001_T_001._Document410_IDRRef = @P3)
GROUP BY
_AccumReg15945._Fld15946RRef,
_AccumReg15945._Fld15947RRef,
_AccumReg15945._Fld15948RRef,
_AccumReg15945._Fld15949RRef,
_AccumReg15945._Fld15950RRef
HAVING
CAST(SUM(CASE
WHEN _AccumReg15945._RecordKind = CAST(0. AS NUMERIC(1,0))
THEN - _AccumReg15945._Fld15951
ELSE _AccumReg15945._Fld15951
END) AS NUMERIC(21,3)) <> CAST(@P4 AS NUMERIC(1,0))
) #V8TblAli1_T
GROUP BY
#V8TblAli1_T._Fld15946RRef,
#V8TblAli1_T._Fld15947RRef,
#V8TblAli1_T._Fld15948RRef,
#V8TblAli1_T._Fld15949RRef,
#V8TblAli1_T._Fld15950RRef
HAVING
CAST(SUM(#V8Tbl
6 мар 13, 10:09    [14017964]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ejik89
текст прилагаю одного из них:

Одного из кого ?
6 мар 13, 10:10    [14017971]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
ambarka_max
Member

Откуда: Россия
Сообщений: 517
Одно из решений - откатить 1С к прошлой версии конфигурации и не трогать ничего.
6 мар 13, 10:12    [14017978]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
Работает около 50 пользователей

Да в субботу программисты делали обновление конфигурации, а если на 1с сделать тестирование и исправление?
6 мар 13, 10:18    [14018008]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

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

Ошибки получаетсья 1 и следом начинаются обект локи у всех пользователей... Транзакции...
6 мар 13, 10:19    [14018012]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ejik89
Ошибки получаетсья 1 и следом начинаются обект локи у всех пользователей... Транзакции...

И вы опубликуете текст ошибки ?
А также объясните, почему этот запрос не должен ничего блокировать ?
6 мар 13, 10:21    [14018021]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

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

Запрос то и должен блокировать но на прошлой неделе например запрос начисления зарплаты отрабатывался за 20 минут условно на этой 2 часа, вот и проблема а в воскресение регламентные прошли очень хорошо.
Возможно я не туда смотрю так что буду очень благодарен если подскажете куда посмотреть.
6 мар 13, 10:24    [14018046]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ejik89
Запрос то и должен блокировать но на прошлой неделе например запрос начисления зарплаты отрабатывался за 20 минут условно на этой 2 часа,

И что вам мешает выяснить причины падения производительности этого запроса ?

Ejik89
Возможно я не туда смотрю так что буду очень благодарен если подскажете куда посмотреть.

На план выполнения запроса. На статистику чтений. На использование ресурсов.
6 мар 13, 10:27    [14018067]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
Можно по пунктам заранее спасибо, как выполнить SQL 2008 r2 En
6 мар 13, 10:29    [14018084]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Glory
Member

Откуда:
Сообщений: 104751
BOL - Database Engine - Operations > Performance - читать все
6 мар 13, 10:42    [14018164]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Ejik89
Можно по пунктам заранее спасибо, как выполнить SQL 2008 r2 En


BOL->Displaying Locking Information
6 мар 13, 10:42    [14018168]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
Спасибо всем, как прочту закину информацию.
6 мар 13, 10:51    [14018228]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
SQL работает нормально пока 1с-ники не начинают проводить один регистр, может ли помоч проведение реорганизации таблиц методом тестирование и исправление в 1с?
6 мар 13, 12:49    [14018972]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ejik89
может ли помоч проведение реорганизации таблиц методом тестирование и исправление в 1с

Для таких вопросов есть форум по 1С
6 мар 13, 12:51    [14018989]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
Проблема решилась проведением "Реорганизации таблиц" через тестирование и исправление, но появилась проблема: при возникновении транзакции - задвайвается проводка, решаеться ли эта проблема через SQL?
26 мар 13, 14:55    [14097148]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Ejik89
при возникновении транзакции - задвайвается проводка

Как вы определяете, что появилось "возникновение транзакции"?
26 мар 13, 15:00    [14097181]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
Гость333,

Ошибка о транзакции появляется в 1с.
26 мар 13, 15:01    [14097189]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Ejik89
Гость333,

Ошибка о транзакции появляется в 1с.

Текст ошибки?
26 мар 13, 15:06    [14097223]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
ОбщийМодуль.УправлениеЗапасамиПартионныйУчет(3964)}: Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provider for SQL Server: Transaction (Process ID 54) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
HRESULT=80004005, SQLSrvr: Error state=38, Severity=D, native=1205, line=1

по причине:
Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provider for SQL Server: Transaction (Process ID 54) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
HRESULT=80004005, SQLSrvr: Error state=38, Severity=D, native=1205, line=1

по причине:
Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provider for SQL Server: Transaction (Process ID 54) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
HRESULT=80004005, SQLSrvr: Error state=38, Severity=D, native=1205, line=1
26 мар 13, 15:15    [14097290]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Ejik89,

так у вас дедлок уважаемый по факту
Смотрите граф деделока и поймете какую таблицу(ы) так удачно "реорганизовало"
28 мар 13, 11:47    [14106224]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
Maxx,

С деадлоком справился но вылезла ошибка:

Ошибка СУБД:
Microsoft OLE DB Provider for SQL Server: Attempt to fetch logical page (1:15755661) in database 8 failed. It belongs to allocation unit 42222579086080 not to 72057744783704064.
HRESULT=80004005. SQLSrvr: Error state=3. Severiy=15. native=605. line=1
1 апр 13, 13:09    [14121206]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Ejik89,

Проверьте базу при помощи DBCC CHECKDB.
1 апр 13, 13:12    [14121220]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
Гость333,

А далее?
1 апр 13, 13:15    [14121233]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Ejik89,

Далее, в зависимости от тяжести найденных ошибок, могут понадобиться разные действия, от пересоздания индекса до восстановления БД из резервной копии.
1 апр 13, 13:25    [14121288]     Ответить | Цитировать Сообщить модератору
 Re: Обект-лок  [new]
Ejik89
Member

Откуда:
Сообщений: 50
Гость333,

А если провести реиндексацию средствами или 1с или скул может устранится проблема?
1 апр 13, 13:28    [14121313]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить