sql server中的事务是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server中的事务是啥意思相关的知识,希望对你有一定的参考价值。
参考技术A 事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。SQL
Server
以下列事务模式运行。自动提交事务
每条单独的语句都是一个事务。显式事务
每个事务均以
BEGIN
TRANSACTION
语句显式开始,以
COMMIT
或
ROLLBACK
语句显式结束。隐式事务
在前一个事务完成时新事务隐式启动,但每个事务仍以
COMMIT
或
ROLLBACK
语句显式完成。批处理级事务只能应用于多个活动结果集
(MARS),在
MARS
会话中启动的
Transact-SQL
显式或隐式事务变为批处理级事务。
SQL Server 中的 PAGEIOLATCH_SH 等待类型是啥?
【中文标题】SQL Server 中的 PAGEIOLATCH_SH 等待类型是啥?【英文标题】:What is PAGEIOLATCH_SH wait type in SQL Server?SQL Server 中的 PAGEIOLATCH_SH 等待类型是什么? 【发布时间】:2010-10-11 20:40:00 【问题描述】:我有一个查询在交易过程中需要很长时间。当我得到进程的wait_type
时,它是PAGEIOLATCH_SH
。
这种等待类型是什么意思,如何解决?
【问题讨论】:
【参考方案1】:来自Microsoft documentation:
PAGEIOLATCH_SH
当任务正在等待
I/O
请求中的缓冲区的闩锁时发生。锁存请求处于共享模式。长时间等待可能表明磁盘子系统存在问题。
在实践中,这几乎总是由于对大表进行大量扫描而发生。在高效使用索引的查询中几乎不会发生这种情况。
如果你的查询是这样的:
Select * from <table> where <col1> = <value> order by <PrimaryKey>
,检查您在(col1, col_primary_key)
上是否有复合索引。
如果您没有,那么如果选择了PRIMARY KEY
,则需要完整的INDEX SCAN
;如果选择了col1
上的索引,则需要SORT
。
它们都是非常磁盘I/O
消耗大表上的操作。
【讨论】:
这是一个非常简单的查询。 Select * fromPAGEIOLATCH_SH
等待类型通常是由于索引碎片或未优化而出现的。
PAGEIOLATCH_SH
等待类型过多的常见原因是:
为了尝试解决具有高 PAGEIOLATCH_SH
等待类型,您可以检查:
PAGEIOLATCH_SH
等待类型的根本原因发现
在进行任何 I/O 子系统故障排除之前解决内存压力问题
请始终牢记,在 AlwaysOn AG 中的高安全性镜像或同步提交可用性的情况下,PAGEIOLATCH_SH
可能会增加/过多。
您可以在文章Handling excessive SQL Server PAGEIOLATCH_SH wait types中找到有关此主题的更多详细信息
【讨论】:
以上是关于sql server中的事务是啥意思的主要内容,如果未能解决你的问题,请参考以下文章