详解优化SQL Server数据库的方法(5)_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:解决SQL Server无法打开用户默认数据库的问题
无法打开用户默认数据库,登录失败,这是SQL Server使用者熟悉的问题之一。在使用企业管理器、查询分析器、各类工具和应用软件的时候,只要关系到连接SQL Server数据库的时候,都有可能会碰到此问题,引起此错误发生的原因比较多,下面我们就来详细分析引起此问


  49、
  
  (1)IF 没有输入负责人代码 THEN code1=0 code2=9999 ELSE code1=code2=负责人代码 END IF 执行SQL语句为: Select 负责人名 FROM P2000 Where 负责人代码>=:code1 AND负责人代码 <=:code2
  
  (2)IF 没有输入负责人代码 THEN  Select 负责人名 FROM P2000 ELSE code= 负责人代码 Select 负责人代码 FROM P2000 Where 负责人代码=:code END IF 第一种方法只用了一条SQL语句,第二种方法用了两条SQL语句。在没有输入负责人代码时,第二种方法显然比第一种方法执行效率高,因为它没有限制条件; 在输入了负责人代码时,第二种方法仍然比第一种方法效率高,不仅是少了一个限制条件,还因相等运算是最快的查询运算。我们写程序不要怕麻烦
  
  50、关于JOBCN现在查询分页的新方法(如下),用性能优化器分析性能的瓶颈,如果在I/O或者网络的速度上,如下的方法优化切实有效,如果在CPU或者内存上,用现在的方法更好。请区分如下的方法,说明索引越小越好。
  
  begin
  
  DECLARE @local_variable table (FID int identity(1,1),ReferenceID varchar(20))
  
  insert into @local_variable (ReferenceID)
  
  select top 100000 ReferenceID from chineseresume order by ReferenceID
  
  select * from @local_variable where Fid > 40 and fid <= 60
  
  end 和
  
  begin
  
  DECLARE @local_variable table (FID int identity(1,1),ReferenceID varchar(20))
  
  insert into @local_variable (ReferenceID)
  
  select top 100000 ReferenceID from chineseresume order by updatedate
  
  select * from @local_variable where Fid > 40 and fid <= 60
  
  end 的不同
  
  begin
  
  create table #temp (FID int identity(1,1),ReferenceID varchar(20))
  
  insert into #temp (ReferenceID)
  
  select top 100000 ReferenceID from chineseresume order by updatedate
  
  select * from #temp where Fid > 40 and fid <= 60 drop table #temp
  
  end

另附:存储过程编写经验和优化措施  From:网页教学网

  一、适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人。  

  二、介绍:在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范,将会影响以后的系统维护困难和大SP逻辑的难以理解,另外如果数据库的数据量大或者项目对SP的性能要求很,就会遇到优化的问题,否则速度有可能很慢,经过亲身经验,一个经过优化过的SP要比一个性能差的SP的效率甚至高几百倍。  

  三、内容:  

  1、开发人员如果用到其他库的Table或View,务必在当前库中建立View来实现跨库操作,最好不要直接使用“databse.dbo.table_name”,因为sp_depends不能显示出该SP所使用的跨库table或view,不方便校验。  

  2、开发人员在提交SP前,必须已经使用set showplan on分析过查询计划,做过自身的查询优化检查。  

分享:揭秘优化SQL Server数据库查询的方法
文中,abigale代表查询字符串,ada代表数据表名,alice代表字段名。 技巧一: 问题类型:ACCESS数据库字段中含有日文片假名或其它不明字符时查询会提示内存溢出。 解决方法:修改查询语句 sql=select * from ada where alice like '%abigale%' 改为 sql=

来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2010-03-29
相关Mssql数据库教程