বর্তমান লেনদেনের স্তর কীভাবে সন্ধান করবেন?


উত্তর:


253

এটি চালান:

SELECT CASE transaction_isolation_level 
WHEN 0 THEN 'Unspecified' 
WHEN 1 THEN 'ReadUncommitted' 
WHEN 2 THEN 'ReadCommitted' 
WHEN 3 THEN 'Repeatable' 
WHEN 4 THEN 'Serializable' 
WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL 
FROM sys.dm_exec_sessions 
where session_id = @@SPID

স্থির মানগুলির জন্য ডকস.মাইক্রোসফট.কম রেফারেন্স


8
বিচ্ছিন্নতা স্তরটি যদি "পঠন_কমিত_স্নাপশট" হয় তবে এটি সঠিক নয়। এই ক্ষেত্রে, এটি কেবল "রিডকমিটেড" প্রদর্শিত হবে।
গাটেক থমাস

8
@ গাটেক থমাস, READ_COMMITTED_SNAPSHOTবিচ্ছিন্নতা স্তর নয়, এটি একটি ডাটাবেসের বিকল্প যা ReadDCommittedবিচ্ছিন্ন স্তরের ডাটাবেস-বিস্তৃত আচরণের পরিবর্তন করার অনুমতি দেয়
জেনাডি ভ্যানিন Ванин Ванин

@ গেটেক থমাস, তারপরে কীভাবে এটি READ_COMMITTED_SNAPSHOT বা READ_COMMITTED_ লকড
ব্যবহারকারী 960567

1
@ ব্যবহারকারী960567, আইআইআরসি, স্কট আইভির উত্তর সেই ফলাফলগুলি দেবে।
গায়েটচ থমাস

3
@zzzeek - বারো বছর ধরে অপ্রচলিত এমন একটি ডাটাবেস ব্যবহার করার জন্য আপনি এটি পান।
মার্টিন ব্রাউন

46

শুধু চালান DBCC useroptionsএবং আপনি এই জাতীয় কিছু পাবেন:

Set Option                  Value
--------------------------- --------------
textsize                    2147483647
language                    us_english
dateformat                  mdy
datefirst                   7
lock_timeout                -1
quoted_identifier           SET
arithabort                  SET
ansi_null_dflt_on           SET
ansi_warnings               SET
ansi_padding                SET
ansi_nulls                  SET
concat_null_yields_null     SET
isolation level             read committed

1
এবং এটি সক্রিয় থাকাকালীন "পড়ুন প্রতিশ্রুতিযুক্ত স্ন্যাপশট"
দেখায়

25
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();

6
আরও শিক্ষাগত হওয়ার জন্য দয়া করে কোডটি আরও বিস্তারিতভাবে বর্ণনা করুন।
lpapp

24
DECLARE   @UserOptions TABLE(SetOption varchar(100), Value varchar(100))
DECLARE   @IsolationLevel varchar(100)

INSERT    @UserOptions
EXEC('DBCC USEROPTIONS WITH NO_INFOMSGS')

SELECT    @IsolationLevel = Value
FROM      @UserOptions
WHERE     SetOption = 'isolation level'

-- Do whatever you want with the variable here...  
PRINT     @IsolationLevel

+1 যেহেতু এটি 'স্ন্যাপশট' প্রিন্ট করে যখন ডাব্লু / রিড প্রতিশ্রুতিবদ্ধ (এবং এটি ডিফল্ট শেয়ার্ড লক প্রক্রিয়া নয়) বরাবর ব্যবহৃত হয়
শমিল দ্য ক্যাট

এটি ওভারকিল, থিয়াগো হিসাবে যা বলেছেন ঠিক তেমনই ডিবিসিসি ব্যবহার করুন
ব্যবহারকারী 1075613

9

আপনি যদি বর্তমান লেনদেনের নেস্টিং স্তরের কথা বলছেন তবে আপনি এটি ব্যবহার করবেন @@TRANCOUNT

আপনি লেনদেনের বিষয়ে কথা হয় যদি বিচ্ছিন্নতা স্তর, ব্যবহার DBCC USEROPTIONSএবং একজন বিকল্পের জন্য বর্ণন বিচ্ছিন্নতা স্তর । যদি এটি সেট না করা হয়, তবে এটি প্রতিশ্রুতিবদ্ধ পাঠযোগ্য


5
এছাড়াও মনে রাখবেন ডিবিসিসির ব্যবহারকারীরা হ'ল আপনার সেশনটির বিচ্ছিন্নতা স্তরটি সন্ধান করার জন্য একটি দুর্দান্ত বিকল্প, তবে এটি মুশকিল হতে পারে - যদি আপনার কোড প্রতি লেনদেনের জন্য বিচ্ছিন্নতা স্তর পরিবর্তন করে তবে সেই সময়কালে যেখানে বিচ্ছিন্নতা স্তরটি সেশন ডিফল্ট থেকে পৃথক থাকে তা কঠিন হতে পারে can ক্যাপচার। উদাহরণস্বরূপ, আপনি যদি বিভাজন স্তরের এক্স দিয়ে আপনার সেশনটি খোলেন, তবে অধিবেশনটির মধ্যে নির্দিষ্ট লেনদেনের সময়কালের জন্য বিচ্ছিন্নতা স্তরটিকে y তে পরিবর্তন করেন, ডিবিসিসির ব্যবহারকারীরা আপনাকে সেই লেনদেনের বাইরে ডাকলে তাতে দৃশ্যমানতা দেবে না।
ডিসিউগস

1
এসকিউএল সার্ভারে 2012 এর "বিচ্ছিন্নতা স্তর" DBCC USEROPTIONS"পড়ার প্রতিশ্রুতিবদ্ধ" তে সেট করা আছে
গেনাডি ভ্যানিন Ванин Ванин
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.