SQL查询优化与事务处理

文章介绍了SQLServer中的索引类型,如唯一索引、主键、聚集和非聚集索引,以及它们在数据检索和性能优化中的作用。同时,讨论了视图的用途和存储过程的优势,如提高执行速度和安全性。此外,还提到了触发器在强制业务规则中的应用和锁机制在确保数据一致性和完整性中的重要性。
摘要由CSDN通过智能技术生成

索引
是SQL Server编排数据的内部方法
可以快速查找数据,而无须扫描整个表

索引分类
唯一索引:不允许两行具有相同的索引值
主键索引:要求主键中的每个值是唯一的
聚集索引:数据存放的物理顺序与索引顺序相同
非聚集索引:数据存放的物理顺序与索引顺序不相同
复合索引:将多个列组合而成的索引
全文索引:一种特殊类型的基于标记的功能性索引

选择索引列的标准
频繁搜索的列
经常用作查询选择的列
经常排序、分组的列
经常用作连接的列(主键/外键)
以下不适合作为索引列
仅包含几个不同值的列
仅包含几行数据的小型表
视图
是一种虚拟表
通常是作为来自一个或多个表的行或列的子集
视图的作用
筛选表中的数据
防止未经许可的用户访问敏感数据
将多个物理数据表抽象为一个逻辑数据表
使用视图的好处
对于最终用户
结果更容易理解,获取数据更容易
对于开发人员
限制数据检索更容易,维护应用程序更方便

为什么需要存储过程
从客户端(Client)通过网络向服务器(Server)发送 SQL 代码并执行是不妥当的
数据不安全
影响应用程序的运行性能
网络流量大

存储过程
是SQL语句和控制语句的预编译集合
保存在数据库里,可由应用程序调用执行
使用存储过程的优点
模块化程序设计
执行速度快,效率高
减少网络流量
具有良好的安全性
存储过程分类
系统存储过程
用户自定义的存储过程

触发器
是在对表进行增、改或删操作时自动执行的存储过程
用于强制业务规则,可以定义比用 CHECK 约束更为复杂的约束
通过事件触发而被执行的
触发器分类
INSERT触发器:当向表中插入数据时触发
UPDATE触发器:当更新表中某列、多列时触发
DELETE触发器:当删除表中记录时触发


用于多用户环境下保证数据库完整性和一致性
锁的模式
共享锁(S锁)
排他锁(X锁)
更新锁(U锁)
查看锁的手段
使用sys.dm_tran_locks动态管理视图
使用Profiler来捕捉锁信息


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值