浅谈SQL Server查询优化与事务处理

  

之前我们简单了解了各种查询的用法,然而在实际开发中还会用到一些比较高级的数据处理和查询,包括<>强索引,视图,存储过程和触发器强。从而能够更好地实现对数据库的操作,诊断及优化。

  

什么是索引呢,索引是SQL Server编排数据的内部方法,他为SQL Server提供了一种方法来编排查询数据的路由,从而达到通过使用索引来提高数据库的检索速度,改善数据库性能。

  

索引也是分为以下六类:
1,唯一索引:不允许两行具有相同的索引值,创建了唯一约束,将会自动创建唯一索引。
2,主键索引:是唯一索引的特殊类型,将表定义一个主键时将自动创建主键索引,他要求主键中的每个值都是唯一的。
3,聚集索引:在聚集索引中,表中各行的物理顺序和键值的逻辑索引顺序相同。(注意:一个表中只能包含一个聚集索引)
4,非聚集索引:建立在索引页上,在查询数据时可以从索引中找到记录存放的位置,聚集索引比非聚集索引有更快的数据访问速度。
5,复合索引:可以将多个列组合为索引。
6,全文索引:是一种特殊类型的基于标记的功能性索引,主要用于在大量文本中搜索字符串。
创建唯一索引:(不可有重复值)

  
 <代码> U_cardID创建独特的非聚集索引
  TStudent (cardID)  
  

查看表上的索引:

  
 <代码> Select * from sys.sysindexes
  id=(从系统选择object_id。all_objects name=' Tstudent)  
  

按照指定的索引进行查询:

  
 <代码> SELECT * FROM学苑
  (指数=IX_name)
  哪里学员姓名如“孙%” 
  

视图是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。
视图的作用就是:
1,筛选表中的数据
2,防止未经允许的用户访问敏感数据
3,将多个物理数据表抽象为一个逻辑数据表
对用户的好处就是:结果更容易理解,获得数据更容易
对开发人员的好处就是:限制数据检索更容易,维护应用程序更方便
<强>注意事项:
1,每个视图中可以使用多个表
2,与查询相似,一个视图可以嵌套另一个视图,最好不要超过三层
3,试图定义的选择语句不能包括以下:

  
      <李> ORDER BY子句,除非选择语在句中的选择列表中也有一个顶级子句李   <李>到关键字   <李>引用临时表或表变量
    创建视图:   netstudent
     <代码>创建视图
      作为
      从dbo选择Sname、性别、阶级。TStudent类=巴绨唷?/代码> 
      

    从视图中查找数据:

      
     <代码> select * from netstudent
      性='男'  
      

    创建视图,更改列的表头:

      V_Tstudent1
     <代码>创建视图
      作为
      选择StudentID学号,Sname姓名,性别性别,cardID×××号码,生日生日,班级班从dbo.TStudent级
      select * from V_Tstudent1  
      

    什么是存储过程,存储过程就是SQL语句和控制语句的预编译集合,保存在数据库里,可由应用程序调用执行。
    那为什么需要存储过程呢,因为从客户端(客户端)通过网络向服务器(服务器)发送SQL代码并执行是不妥当的,导致数据可能会泄露不安全,印象了应用程序的运行性能,而且网络流量大。
    使用存储过程的优点就是:
    1,模块化程序设计
    2,执行速度快,效率高
    3,减少网络流量
    4,具有良好的安全性
    <强>存储过程分为两类:系统存储过程和用户自定义的存储过程
    <强>系统存储过程:
    是一组预编译的t - SQL语句,提供了管理数据库的更新表的机制,并充当从系统表中检索信息的快捷方式
    以“sp”开的头,存放在资源数据库中,常用的系统存储过程有如下:
    浅谈SQL server查询优化与事务处理”> <br/>使用t - SQL语句调用执行存储过程的语法:</p>
  <pre> <代码> EXEC (UTE)存储过程名[参数值)
  EXEC为执行的简写</代码> </pre>
  <p>常用系统存储过程的用法:</p>
  <pre> <代码> exec sp_databases——列出当前系统中的数据库
  exec sp_renamedb“mybank”,“银行”,改变数据库名称(单用户访问)
  使用MySchool
  去
  exec sp_tables——当前数据库中可查询对象的列的表
  exec sp_columns学生——查看学生表中列的信息
  exec sp_help学生——查看表学生的所有信息
  exec sp_helpconstraint学生——查看表学生表的约束
  exec sp_helptext view_student_result——查看视图的语句文本
  exec sp_stored_procedures——返回当前数据库中的存储过程列表<h2 class=浅谈SQL Server查询优化与事务处理