如何在 SQL Server 2005 Analysis Services 中启用快照事务隔离级别


简介


本文介绍如何在 Microsoft SQL Server 2005 Analysis Services 中启用快照事务隔离级别。 此外,本文介绍如何测试是否启用了快照事务隔离级别。

更多信息


如何启用快照事务隔离级别

在 Analysis Services 中,你可以使用快照事务隔离级别连接到 SQL Server 2005 数据源。 若要启用快照事务隔离级别,请按照下列步骤操作:
  1. 在 SQL Server Management Studio 中,运行以下语句。
    ALTER DATABASE <DatabaseName>SET READ_COMMITTED_SNAPSHOT ONGOALTER DATABASE <DatabaseName>SET ALLOW_SNAPSHOT_ISOLATION ONGO
    注意 在这些语句中, <DatabaseName> 是要在 Analysis Services 中使用的数据源中数据库的占位符。
  2. 在商业智能开发工作室中,创建新的 Analysis Services 项目。或者,打开现有的 Analysis Services 项目。
  3. 如果在步骤2中创建了新的 Analysis Services 项目,请按照下列步骤操作:
    1. 在 "解决方案资源管理器" 中,右键单击 " 数据源",然后单击 " 新建数据源"。
    2. 在 " 选择如何定义连接" 对话框中,单击 " 新建"。 将显示 " 连接管理器 " 对话框。
    如果在步骤2中打开了现有的 Analysis Services 项目,请按照下列步骤操作:
    1. 在 " 数据源 " 文件夹下,双击现有数据源。
    2. 在 " 数据源设计器 " 对话框中,单击 " 编辑"。 将显示 " 连接管理器 " 对话框。
  4. 在 "连接管理器" 对话框中,在 "提供程序" 列表中单击 "本机 OLE DB\SQL 本机客户端"。
  5. 指定服务器名称和身份验证。
  6. 若要测试连接,请单击 " 测试连接"。
  7. 在左窗格中,单击 " 全部"。
  8. 在右窗格中,在MARS 连接列表中单击 " True ",然后单击"确定"
  9. 在 "数据源设计器" 对话框中,单击 "隔离" 列表中的 "快照",然后单击"确定"

如何测试是否已启用快照事务隔离级别

若要测试是否已启用快照事务隔离级别,请按照下列步骤操作:
  1. 启动 SQL Server Profiler。
  2. 创建新跟踪以连接到您在 Analysis Services 项目中指定的数据源。
  3. 在 " 跟踪属性 " 对话框中,单击 " 事件选择 " 选项卡。
  4. 在 " TransactionID " 列中,单击以选中 sql: BatchCompleted 事件行和 sql: BatchStarting 事件行中的复选框。注意 若要显示 " TransactionID " 列,请单击以选中 " 显示所有列 " 复选框。
  5. 单击 " 运行 " 以启动跟踪。
  6. 在商业智能开发工作室中,处理 Analysis Services 项目。
  7. 在 SQL Server Profiler 中,查找sql: BatchCompleted事件以及 " TransactionID " 列中具有相同值的sql: BatchStarting事件。 通常,这些事件包含 TextData 列中的 SELECT 语句。 对于这些事件,请获取 SPID 列中的会话 ID。
  8. 若要连接到数据源,请启动 SQL Server Management Studio。
  9. 创建一个新查询,然后运行以下 Transact-sql 语句。
    select session_id,Transaction_Isolation_Level from sys.dm_exec_sessionswhere session_id=<SPID>
    注意 在此语句中, <SPID> 是您在步骤7中获取的会话 ID 的占位符。
  10. 在 " 结果 " 选项卡上,记下 " Transaction_Isolation_Level " 列中的值。 此值指示在 Analysis Services 项目中使用的事务隔离级别。 启用快照事务隔离级别后," Transaction_Isolation_Level " 列中的值为5。
下表显示了 " Transaction_Isolation_Level " 列中的值和相应的事务隔离级别。
事务隔离级别
0
1ReadUncommitted
2ReadCommitted
3而且
Snapshot

参考


有关快照事务隔离级别的详细信息,请参阅 SQL Server 2005 联机丛书中的以下主题:
  • 设置事务隔离级别(Transact-sql)
  • 启用基于行版本控制的隔离级别
  • 数据库引擎中的隔离级别