ใน SQL Server 2005/2008 ฉันจะทราบได้อย่างไรว่ามีการเปิด Snapshot Isolation หรือไม่ ฉันรู้วิธีเปิดใช้งาน แต่ฉันไม่พบคาถาเพื่อให้ google บอกวิธีการสอบถามสถานะของตัวเลือก Snapshot Isolation
ใน SQL Server 2005/2008 ฉันจะทราบได้อย่างไรว่ามีการเปิด Snapshot Isolation หรือไม่ ฉันรู้วิธีเปิดใช้งาน แต่ฉันไม่พบคาถาเพื่อให้ google บอกวิธีการสอบถามสถานะของตัวเลือก Snapshot Isolation
คำตอบ:
คลิกขวาที่ไดเรกทอรีฐานข้อมูลใน Object explorer และเริ่ม powershell ประเภท:
get-childitem|select name, snapshotisolationstate
และกด Return
Powershell จริงเหรอ? เกิดอะไรขึ้นกับ T-SQL ที่ดีแบบ ol
sys.databaseเป็นสิ่งที่คุณต้องการ มีคอลัมน์คำอธิบายที่มนุษย์สามารถอ่านได้เช่น snapshot_isolation_state_desc
SELECT snapshot_isolation_state_desc from sys.databases
where name='adventureworks'
การขยายการตอบสนองของ nicks จากด้านบน ..
ต่อไปนี้จะส่งคืนข้อมูลเกี่ยวกับฐานข้อมูลทั้งหมดของคุณ
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
หรือใช้รหัส 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'
วิธีการทดสอบว่าระดับการแยกธุรกรรมสแนปชอตเปิดใช้งานอยู่หรือไม่
เมื่อต้องการทดสอบว่าระดับการแยกธุรกรรม snapshot ถูกเปิดใช้งานทำตามขั้นตอนเหล่านี้:
- เริ่มตัวสร้างโปรไฟล์ของเซิร์ฟเวอร์ SQL
- สร้างการสืบค้นกลับใหม่เพื่อเชื่อมต่อกับแหล่งข้อมูลที่คุณระบุในโครงการ Analysis Services
- ในกล่องโต้ตอบติดตามคุณสมบัติคลิกแท็บการเลือกเหตุการณ์
- ในคอลัมน์ TransactionID คลิกเพื่อเลือกกล่องกาเครื่องหมายในแถวสำหรับ SQL: BatchCompleted เหตุการณ์และในแถวสำหรับเหตุการณ์ SQL: BatchStarting
หมายเหตุเมื่อต้องการแสดงคอลัมน์ TransactionID คลิกเพื่อเลือกกล่องกาเครื่องหมายแสดงคอลัมน์ทั้งหมด
- คลิกเรียกใช้เพื่อเริ่มการติดตาม
ใน Business Intelligence Development Studio ดำเนินการโครงการ Analysis Services
ใน SQL Server Profiler ค้นหาเหตุการณ์ SQL: BatchCompleted และสำหรับ SQL: BatchStarting เหตุการณ์ที่มีค่าเดียวกันในคอลัมน์ TransactionID โดยทั่วไปแล้วเหตุการณ์เหล่านี้มีคำสั่ง SELECT ในคอลัมน์ TextData สำหรับเหตุการณ์เหล่านี้รับ ID เซสชันในคอลัมน์ SPID
เมื่อต้องการเชื่อมต่อกับแหล่งข้อมูลให้เริ่ม Studio จัดการเซิร์ฟเวอร์ SQL
สร้างแบบสอบถามใหม่แล้วเรียกใช้คำสั่ง Transact-SQL ต่อไปนี้
เลือก session_id, Transaction_Isolation_Level จาก sys.dm_exec_sessions โดยที่ session_id =
หมายเหตุในคำสั่งนี้เป็นตัวยึดสำหรับรหัสเซสชันที่คุณได้รับในขั้นตอนที่ 7
- บนแท็บผลลัพธ์ให้สังเกตค่าในคอลัมน์ Transaction_Isolation_Level ค่านี้ระบุระดับการแยกธุรกรรมที่คุณใช้ในโครงการ Analysis Services เมื่อเปิดใช้งานการแยกธุรกรรมระดับสแนปชอตค่าในคอลัมน์ Transaction_Isolation_Level คือ 5
ตารางต่อไปนี้แสดงค่าในคอลัมน์ Transaction_Isolation_Level และระดับการแยกธุรกรรมที่สอดคล้องกัน