عميل جديد يشتكي من ان النظام بطيء جدا في عملية الحفظ، ولا نستطيع فتح ملفات اخرى اثناء حفظ ملف اخر.
ما السبب المحتمل لهذه المشكلة وكيف يمكن حلها؟
Originally posted at https://answers.namasoft.com/question/44/ on 2018-06-25.
عميل جديد يشتكي من ان النظام بطيء جدا في عملية الحفظ، ولا نستطيع فتح ملفات اخرى اثناء حفظ ملف اخر.
Originally posted at https://answers.namasoft.com/question/44/ on 2018-06-25.
السبب في هذه المشكلة غالبا هو ان مستوى عزل المعاملات (Transaction Isolation Level) في قاعدة البيانات ليس مضبوطا على READ COMMITTED SNAPSHOT.
نفذ الاستعلام التالي على قاعدة البيانات:
SELECT CASE
WHEN transaction_isolation_level = 1
THEN 'READ UNCOMMITTED'
WHEN transaction_isolation_level = 2
AND is_read_committed_snapshot_on = 1
THEN 'READ COMMITTED SNAPSHOT'
WHEN transaction_isolation_level = 2
AND is_read_committed_snapshot_on = 0 THEN 'READ COMMITTED'
WHEN transaction_isolation_level = 3
THEN 'REPEATABLE READ'
WHEN transaction_isolation_level = 4
THEN 'SERIALIZABLE'
WHEN transaction_isolation_level = 5
THEN 'SNAPSHOT'
ELSE NULL
END AS TRANSACTION_ISOLATION_LEVEL
FROM sys.dm_exec_sessions AS s
CROSS JOIN sys.databases AS d
WHERE session_id = @@SPID
AND d.database_id = DB_ID();
اذا كانت النتيجة اي شيء غير READ COMMITTED SNAPSHOT فهذا يعني انك بحاجة لضبط الاعداد.
ملحوظة هامة: يجب ايقاف تشغيل خدمة Tomcat اولا، ثم اعادة تشغيل خدمة SQL Server، ثم نفذ الجملة التالية (مع استبدال DBNAME باسم قاعدة البيانات الفعلي):
USE [master];
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'
FROM sys.dm_exec_sessions
WHERE database_id = db_id('DBNAME');
EXEC(@kill);
ALTER DATABASE DBNAME
SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE DBNAME
SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE DBNAME
SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT ON;
اذا كانت نسخة SQL Server هي 2014 او اقل، فقد تظهر رسالة خطأ بسبب الجملة الاخيرة:
ALTER DATABASE DBNAME
SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT ON;
في هذه الحالة قم بحذف هذه الجملة من السكريبت ونفذ الباقي.
مع العلم أن الطريقة الحديثة لتنصيب البرنامج تتضمن انشاء سكريبت لقاعدة البيانات به هذه الخطوة آليا
Originally posted at https://answers.namasoft.com/question/44/ on 2018-06-25.