sqlldr 命令(sqlldr命令中密码带有特殊字符)

sqlldr 命令(sqlldr命令中密码带有特殊字符)nbsp nbsp 第二步 通过 SQL 语句分析锁定情况 由于 SQL nbsp SERVER nbsp 2008 相比 SQL nbsp SERVER nbsp 2005 中的 活动监视器 有了比较大的改变 所以下而我们通过 SQL 语句进行分析 使用 SQL 语句进行分析需要通过 SP WHO SP WHO2 SP LOCK 等系统存储过程 Master sys sysprocesses 系统视图 或从 SQL nbsp 2005 2008 新提供的动态视图管理 DMV sys




第二步,通过SQL语句分析锁定情况

由于SQL SERVER 2008相比SQL SERVER 2005中的“活动监视器”有了比较大的改变,所以下而我们通过SQL语句进行分析,使用SQL语句进行分析需要通过SP_WHO、SP_WHO2、SP_LOCK等系统存储过程、Master.sys.sysprocesses系统视图,或从SQL 2005(2008)新提供的动态视图管理(DMV)sys.dm_exec_session、sys.dm_tran_locks等获取相关信息。

通过master.sys.sysprocesses 视图找出最初锁住资源及导致后面一连串进程被迫停止的等待源头。

下面我们举一个例子来具体说明,以下代码在SQL SERVER 2005/2008中都可以使用:





在SQL SERVER 2005/2008中的Microsoft SQL Server Management Studio中打开一个新的查询界面,执行 exec SP_LOCK。结果如下图。


sql server查询字段进行加密_sql server查询字段进行加密

图1

从图1中可以观察到两个进程的相互作用,其中进程“53”要求模式为“独占(X)”,已经被获取允许“GRANT”;进程“56”要求模式为“共享(S)”正等候(WAIT)处理。

如上图1中进程“56”(执行SELECT语句的查询连接)被进程“53”(执行UPDATE语句的查询连接)封锁的现象,并从Book数据表锁定可以看出是因为“独占”锁定某一条索引键值(要求类型为KEY),导致进程“56”放置共享锁定(要求模式为“S”),而在等待状态(要求状态为WAIT)。

4. 在SQL SERVER 2005/2008中的Microsoft SQL Server Management Studio中打开一个新查询界面,通过另外一条连接来执行程序代码(例一),执行结果如下图。


sql server查询字段进行加密_sql server查询字段进行加密_02

图2

在上图2中可以看出例二查询代码开启事务之后,未关闭事务,因此状态(status)为sleeping,但并未被其他进程锁住(blk),所以“是否被锁住”列的数据为0,没有执行命令,也没有等待某种资源。另外由于该查询的数据库连接是Test,所以数据库名称为Test。

5. 查询sysprocesses系统视图呈现有问题的交易的现象可能有许多种,但最常见的一种就是status字段等于sleeping,waittype字段等于0x0000,last_batch字段表示离最后一次批处理执行的时候已经有一段距离了,以及open_tran字段大于0。例如,直接执行代码例二,这时事务已经开启,但是迟迟没有结束,就可能是程序没有做好事务管理。

可以在在SQL SERVER 2005/2008中的Microsoft SQL Server Management Studio中打开一个新查询界面中执行下面的语句,以查询有问题的连接





如下图。


sql server查询字段进行加密_Server_03

图3

status字段等于sleeping表示没有指示符正在执行,waittype字段等于0x0000代表此连接没有等待任何资源,last_batch字段表示最后一次SQL语句执行的时间,如果此时间离现在有一段时间了,以及open_tran字段大于0,就有问题了。一段时间过去了,没有等待任何资源,也没有执行任何SQL语句,那么为什么还要开启事务?

除了上述查询sysprocesses系统视图之外,SQL SERVER 2005/2008 可以通过“sys.dm_tran_locks动态管理视图”呈现目前使用中相关的锁定信息。返回的每一条记录都代表一个已经授权或等待授权的锁定。在结果集的数据行中,主要分成“资源”与“请求”两类,其字段分别以resource与request为前缀。资源群组描述已经锁定或等待的资源,而请求群组则描述已经获取或等待中的锁定请求。





在Sql 2005 的TEST执行上面的代码,结果如下图。(这是针对Wbk_pde_list数据表)


sql server查询字段进行加密_数据库_04

图4

在Sql 2008 的TEST数据库上执行上面的代码,结果如下图。(这是针对BOOK数据表)


sql server查询字段进行加密_sql server查询字段进行加密_05

图5

备注:

以上第二步是通过在Microsoft SQL Server Management Studio中执行代码进行查询与分析加锁情况,而在SQL SERVER 2005中则可以通过Microsoft SQL Server Management Studio管理获取相当多的信息,方便让你决定当前应该采取什么样步骤。

上而第二步中获取的信息都可以在SQL SERVER 2005中通过Microsoft SQL Server Management Studio中的“活动监视器”获取。

例如通过“活动监视器--》按对象分类的锁”,下拉菜单中选择相应的对象。(如下图)


sql server查询字段进行加密_字段_06

编程小号
上一篇 2025-03-07 08:46
下一篇 2025-03-07 21:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/23460.html