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

Откуда: Самара
Сообщений: 64
Ситуация следующая.

Домен.
DC: AD,DNS, сервер 1C Предприятие 8.1 (порт 1541), сервер 1C Предприятие 8.2 (порт 1641)
TS: Remote APP, Server license, 1C 8.1 Предприятие (клиент), 1C 8.2 Предприятие (клиент)
SQL: SQL 2008 r2 x64.
Базы: Основные: 30,5Гб и 21Гб. Второстепенные: Учебная: 21Гб(не всегда используется), и тестовая на 19Гб.

Проблемы:

Проблема №1
В основной базе (30,5Гб) ведутся все работы (продажи, приход, расход) появляются периодически блокировки.
Периодичность появления блокировок 2-3 раза в неделю.
Количество блокировок начинается от 400000 и доходит до 2000000.
Лечится это все закрытием всех терминальных сессий и перезапуском служб SQL сервера.
Надо сделать так, чтобы блокировок не было.
Срок решения задачи - месяц.

Проблема №2: Я в SQL ни бум-бум.

Скриншот с рядовыми блокировками прикладываю,может чем поможет.

К сообщению приложен файл. Размер - 43Kb
22 авг 12, 10:13    [13047331]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
M1chA77,

Только написал сообщение на форум как пошли и блокировки. Выкладываю скриншот "Самые продолжительные транзакции".

К сообщению приложен файл. Размер - 56Kb
22 авг 12, 10:20    [13047365]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Glory
Member

Откуда:
Сообщений: 104760
M1chA77
Количество блокировок начинается от 400000 и доходит до 2000000.
Лечится это все закрытием всех терминальных сессий и перезапуском служб SQL сервера.

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

M1chA77
Надо сделать так, чтобы блокировок не было

Переписывайте клиентский код, который устанавливает эти блокировки.
22 авг 12, 10:28    [13047411]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Glory
Еще можно покупать каждый раз новый компьютер и переустанавливать windows.
Хотя лучше просто закрыть соединение, которое блокирует другие.


Если я закрываю соединение на TS то блокировка все равно не уходит
На самом сервере 1С закрытие соединения не помогает, оно все равно появляется

Glory
Переписывайте клиентский код, который устанавливает эти блокировки.

Поясни пожалуйста, что ты имеешь ввиду?


И такой вопрос, с чего начать изучение SQL?
Надо в кратчайший срок (2-3 недели) хотя бы базу получить чтобы хоть немного петрить и дальше ковыряться.
22 авг 12, 10:39    [13047482]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Glory
Member

Откуда:
Сообщений: 104760
M1chA77
Если я закрываю соединение на TS то блокировка все равно не уходит

Значит вы закрываете не то соединение

M1chA77
На самом сервере 1С закрытие соединения не помогает, оно все равно появляется

Значит какое то приложение продолжает работать

M1chA77
Поясни пожалуйста, что ты имеешь ввиду?

Берете редактор и руками переписываете команды, которые 1С выполняет. Потому что именно эти команды и создают блокировки.
22 авг 12, 10:44    [13047520]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Glory
Значит вы закрываете не то соединение

Glory
Значит какое то приложение продолжает работать

Ну не может оно работать, не может!!!
Как я делаю. Пример.
1.Появляется блокировка.
2.Смотрю идентификатор сеанса.
3.Иду на TS и завершаю пользователя полностью.
4.Иду на DC и убиваю на сервере 1С пользователя с идентификатором сеанса который вызвал блокировку.

Вот эти вот действия не помогают,поэтому я и перегружаю службы SQL сервера.

Glory
Берете редактор и руками переписываете команды, которые 1С выполняет. Потому что именно эти команды и создают блокировки.

т.е дело не в SQL сервере?
22 авг 12, 10:52    [13047567]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
M1chA77
т.е дело не в SQL сервере?
Сервер сам по себе ничего не блокирует.
22 авг 12, 10:55    [13047583]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Glory
Member

Откуда:
Сообщений: 104760
M1chA77
Ну не может оно работать, не может!!!
Как я делаю. Пример.
1.Появляется блокировка.
2.Смотрю идентификатор сеанса.
3.Иду на TS и завершаю пользователя полностью.

И как вы устанваливаете соответствие между идентификатором сеанса и сессией на TS ?


M1chA77
т.е дело не в SQL сервере?

Вы думаете, что сервер сам по своей прихоти что-то блокирует ?
22 авг 12, 10:56    [13047592]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Glory
И как вы устанваливаете соответствие между идентификатором сеанса и сессией на TS ?.

Пример. Блокирующий Идентификатор сеанса 55
Иду на DC и смотрю пользователя 1С с Идентификатором сеанса 55. Это Иванов.
Убиваю сеанс Иванова на TS. А потом убиваю сеанс Иванова на сервере 1С.

Glory
Вы думаете, что сервер сам по своей прихоти что-то блокирует ?

Я не могу так думать, потому, что у меня нет таких знаний. Именно поэтому я и спрашиваю у знающих людей.

Порекомендуйте пожалуйста, что читать или смотреть, чтобы за 2-3 недели получить хоть какие-то базовые знания по SQL 2008 r2
22 авг 12, 11:02    [13047619]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Glory
Member

Откуда:
Сообщений: 104760
M1chA77
Пример. Блокирующий Идентификатор сеанса 55
Иду на DC и смотрю пользователя 1С с Идентификатором сеанса 55.

Так какая свзяь то между номером коннекта внутри SQL Server и номером сеанса на каком то DC ?
22 авг 12, 11:05    [13047644]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
invm
Member

Откуда: Москва
Сообщений: 9397
M1chA77
Пример. Блокирующий Идентификатор сеанса 55
Иду на DC и смотрю пользователя 1С с Идентификатором сеанса 55. Это Иванов.
Убиваю сеанс Иванова на TS. А потом убиваю сеанс Иванова на сервере 1С.
Терминальные сессии, соединение пользователя с сервером 1С и сервера 1С с SQL Server -- абсолютно разные вещи.
M1chA77
Порекомендуйте пожалуйста, что читать или смотреть, чтобы за 2-3 недели получить хоть какие-то базовые знания по SQL 2008 r2
http://msdn.microsoft.com/ru-ru/library/bb545450.aspx
22 авг 12, 11:07    [13047666]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Glory
Так какая свзяь то между номером коннекта внутри SQL Server и номером сеанса на каком то DC ?

Они идентичны.
Если никаких блокировок нет то в 1С в графе "Соединение с базой" пусто.
Но как только сеанс вызывает блокировку, в графе "Соединение с базой" появляется Идентификатор.
Этот Идентификатор совпадает с Идентификатором в отчетах SQL (самые продолжительные транзакции).
22 авг 12, 11:11    [13047703]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Glory
Member

Откуда:
Сообщений: 104760
M1chA77
Они идентичны

Да что вы говорите
А как же тогда "Если я закрываю соединение на TS то блокировка все равно не уходит" ?
Соединения нет, а блокировки есть ?
Просто чудеса какие то
Суслика не видно, но он есть.
22 авг 12, 11:16    [13047753]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
invm
Терминальные сессии, соединение пользователя с сервером 1С и сервера 1С с SQL Server -- абсолютно разные вещи.

Тогда как реализовать то, что говорит Glory

Glory
Хотя лучше просто закрыть соединение, которое блокирует другие.


За ссылку спасибо.
22 авг 12, 11:19    [13047774]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Glory
Да что вы говорите
А как же тогда "Если я закрываю соединение на TS то блокировка все равно не уходит" ?
Соединения нет, а блокировки есть ?
Просто чудеса какие то
Суслика не видно, но он есть.


Тогда как реализовать?
Glory
Хотя лучше просто закрыть соединение, которое блокирует другие.
22 авг 12, 11:22    [13047794]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Выкладываю скриншоты с пользаками которые вызывают блокировки

К сообщению приложен файл. Размер - 21Kb
22 авг 12, 11:27    [13047836]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Второй скриншот это SQL

К сообщению приложен файл. Размер - 30Kb
22 авг 12, 11:28    [13047843]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Glory
Member

Откуда:
Сообщений: 104760
M1chA77
Второй скриншот это SQL

Вы пытаетесь убедить, что сервер что то не так делает ?
Сервер делает то, что ему указывают делать ваши соединения.
22 авг 12, 11:30    [13047872]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Glory
Вы пытаетесь убедить, что сервер что то не так делает ?
Сервер делает то, что ему указывают делать ваши соединения.

Нет, не пытаюсь.
Но разве идентичность сеансов не говорит о том, что именно этот сеанс блокирует работу 1С?
Как тогда найти и завершить сеанс который вызывает блокировку?
Извиняюсь за упертость, просто хочется разобраться в вопросе.
22 авг 12, 11:42    [13047974]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Glory
Member

Откуда:
Сообщений: 104760
M1chA77
Но разве идентичность сеансов не говорит о том, что именно этот сеанс блокирует работу 1С?

Идентичность сеансов ни о чем не говорит
Тем более о том, кто и кого блокирует
О блокировках, например, говорит соответствующий раздел вSQL Server Managament Studio
22 авг 12, 11:46    [13048009]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
Glory
О блокировках, например, говорит соответствующий раздел вSQL Server Managament Studio

А где в SMS он находится? Ткните пожалуйста.
22 авг 12, 11:51    [13048070]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
nicescar
Member

Откуда:
Сообщений: 94
В момент появления блокировок запустите следующий код в SSMS на этом SQL-сервере. Он покажет вам активные сессии с SQL-запросами и кто кого блокирует.
select  
    r.session_id,
	s.login_name,
	s.host_name,
	s.program_name,
	c.connect_time,
    r.start_time,  
    r.status,  
    r.command,  
    db_name(r.database_id) as db,  
    r.blocking_session_id,  
    r.wait_type,  
    r.wait_time,  
    r.wait_resource,  
    r.percent_complete,  
    r.estimated_completion_time/1024/60 as RemainMinutes,  
    r.cpu_time,  
    r.total_elapsed_time,  
    r.scheduler_id,  
    r.reads,  
    r.writes,  
    r.logical_reads,  
    r.row_count,  
    r.granted_query_memory,  
    case r.statement_end_offset  
    when -1 then NULL  
    else object_name(s2.objectid, s2.dbid)  
    end as ProcedureName,  
    case r.statement_end_offset  
    when -1 then s2.text  
    else substring(s2.text, r.statement_start_offset/2, (r.statement_end_offset/2) - (r.statement_start_offset/2))  
    end as Text,  
    s3.query_plan  
from sys.dm_exec_requests r  
	inner join sys.dm_exec_sessions s on s.session_id=r.session_id 
	inner join sys.dm_exec_connections c on c.session_id=r.session_id 
    cross apply sys.dm_exec_sql_text(r.sql_handle) as s2  
    cross apply sys.dm_exec_query_plan (r.plan_handle) as s3  
where r.status <> 'background'  
    and r.command <> 'task manager'  
    and r.session_id <> @@SPID  
    and r.database_id <> db_id('msdb')  
order by r.cpu_time desc  
22 авг 12, 12:18    [13048319]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
M1chA77
Member

Откуда: Самара
Сообщений: 64
nicescar,

За код - ОГРОМНОЕ СПАСИБО.
Подскажите пожалуйста куда его вставить.
Только начал разбираться с SQL, поэтому сильно не пинайте пожалуйста.
22 авг 12, 12:23    [13048349]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
nicescar
Member

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

подключиться через SSMS к серверу SQL 1C, нажать New Query, вставить, выполнить.
22 авг 12, 12:24    [13048365]     Ответить | Цитировать Сообщить модератору
 Re: 1C 8.1 и блокировки  [new]
Panshin
Member

Откуда:
Сообщений: 106
M1chA77,
Поскольку 1С сервер приложений сам генерирует запросы, то самое простое решение это посмотреть в профайлере, что же он генерирует в момент блокировок. Потом пойти в схему 1С и понять человеческий смысл этих таблиц, чтобы понять что же делают пользователи в момент блокировок. Может быть это и не пользователи, а скажем движок для документооборота или обработки по расписанию. В общем кто то одновременно меняет одни и те же данные, или в цикле. Второй вариант купить софт по анализу блокировок.
22 авг 12, 15:20    [13049916]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить