Làm thế nào tôi có thể biết nếu Snapshot Isolation được bật?


34

Trong SQL Server 2005/2008, làm thế nào tôi có thể biết nếu cách ly Snapshot được bật? Tôi biết cách bật nó lên, nhưng tôi không thể tìm thấy câu thần chú để nhờ google chỉ cho tôi cách truy vấn trạng thái của tùy chọn Snapshot Isolation.

Câu trả lời:


6

nhấp chuột phải vào thư mục cơ sở dữ liệu trong trình thám hiểm đối tượng và bắt đầu powershell. gõ:
get-childitem|select name, snapshotisolationstate
và nhấn return


9
wow, PS có thực sự cần thiết không?
Nick Kavadias

66

Powershell, thực sự? Điều gì sai với T-SQL thời trang tốt?

sys.database là những gì bạn muốn. Nó có các cột mô tả có thể đọc được của con người như snapshot_isolation_state_desc

SELECT snapshot_isolation_state_desc from sys.databases 
where name='adventureworks'

2
Không, không hoàn toàn cần thiết nhưng tôi mới bắt đầu học PS nên đã xem thử cách thực hiện và nghĩ rằng tôi sẽ chia sẻ ..!
Xì phé

nhiều như tôi ghét phải thừa nhận nó, nó thật tuyệt
Nick Kavadias

Thành thật mà nói, tôi đang đấu tranh để thấy nó sẽ được sử dụng rất nhiều cho tôi, chúng tôi chỉ có 30 máy chủ. Nếu tôi muốn cách ly ảnh chụp nhanh từ mọi cơ sở dữ liệu trên mọi máy chủ thì tôi đoán PS có thể tốt hơn T-SQL .. hiện tại tôi đang xem nó như một giải pháp thay thế, tôi sẽ sử dụng nó ở đây và ở đó tôi mong đợi.
Xì phé

Tôi không thể chỉnh sửa vì nó ít hơn một thay đổi sáu ký tự, nhưng đối với những linh hồn bối rối khác sao chép và dán truy vấn, lưu ý rằng đó phải là sys.database s chứ không phải sys.database.
Mark Sowul

15

Mở rộng về phản ứng của nicks từ phía trên ..

Sau đây sẽ trả về thông tin về tất cả các cơ sở dữ liệu của bạn

    select name
        , s.snapshot_isolation_state
        , snapshot_isolation_state_desc
        , is_read_committed_snapshot_on
        , recovery_model
        , recovery_model_desc
        , collation_name
    from sys.databases s

3

Hoặc sử dụng mã T-SQL:

SELECT
'Current Isolation State:' [ ],
CASE is_read_committed_snapshot_on
        WHEN 1 THEN 'ON' ELSE 'OFF'
    END AS [Read Committed Snapsot State]
FROM sys.databases
WHERE name = 'MyDatabaseName'

2
Câu trả lời này dành cho read_commned_snapshot, không dành cho Cấp độ cách ly Snapshot như OP yêu cầu. Họ là hai việc khác nhau.
Kevin Kalitowski

0

Cách kiểm tra xem mức cô lập giao dịch chụp nhanh có được bật hay không

Để kiểm tra xem mức cô lập giao dịch chụp nhanh có được bật hay không, hãy làm theo các bước sau:

  1. Khởi động SQL Server Profiler.
  2. Tạo một dấu vết mới để kết nối với nguồn dữ liệu mà bạn đã chỉ định trong dự án Dịch vụ phân tích.
  3. Trong hộp thoại Thuộc tính dấu vết , bấm vào tab Chọn sự kiện .
  4. Trong cột TransactionID, bấm để chọn các hộp kiểm trong hàng cho sự kiện SQL: BatchCompleted và trong hàng cho sự kiện SQL: BatchStarting.

Lưu ý Để hiển thị cột TransactionID, bấm để chọn hộp kiểm Hiển thị tất cả các cột .

  1. Bấm Chạy để bắt đầu theo dõi.
  2. Trong Studio Phát triển Kinh doanh Thông minh, xử lý dự án Dịch vụ Phân tích.

  3. Trong SQL Server Profiler, hãy tìm các sự kiện SQL: BatchCompleted và cho các sự kiện SQL: BatchStarting có cùng giá trị trong cột TransactionID. Thông thường, các sự kiện này chứa câu lệnh SELECT trong cột TextData. Đối với những sự kiện này, hãy lấy ID phiên trong cột SPID.

  4. Để kết nối với nguồn dữ liệu, hãy khởi động SQL Server Management Studio.

  5. Tạo một truy vấn mới và sau đó chạy câu lệnh Transact-SQL sau đây.

    chọn session_id, Transaction_Isolation_Level từ sys.dm_exec_sments trong đó session_id =

Lưu ý Trong tuyên bố này, là một trình giữ chỗ cho ID phiên mà bạn có được trong bước 7.

  1. Trên tab Kết quả , lưu ý giá trị trong cột Transaction_Isolation_Level. Giá trị này cho biết mức cô lập giao dịch mà bạn đang sử dụng trong dự án Dịch vụ phân tích. Khi mức cô lập giao dịch ảnh chụp nhanh được bật, giá trị trong cột Transaction_Isolation_Level là 5.

Bảng sau đây cho thấy các giá trị trong cột Transaction_Isolation_Level và các mức cô lập giao dịch tương ứng.

bảng hiển thị mức cô lập giao dịch

https://support.microsoft.com/en-us/help/919160/how-to-enable-the-snapshot-transaction-isolation-level-in-sql-server-2

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.