`
icrwen
  • 浏览: 262158 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

sql server存储过程注意事项

阅读更多

2012-11-2

批量修改sql server里的数据

利用sa帐号把数据库里的数据导出成excel表格,然后再在excel里替换相应的数据,

最后truncate table 表明将数据库里的自增字段清零,然后再打开表格数据之后清空表格数据,将excel表里的数据粘贴上去。

 

 

2012-10-31

数据库查询里尽量用exists,用在外表比较小,内表比较大的情况下, 如果内表比较小,外表比较大的话可以用in

查询武将模板表里,排除已经录取的武将。

     select * from PlayerTemplet pt 

     where  not exists 

      (select *  from player p  where p.userid = 7 and pt.PlayerTempletID = p.PlayerTempletID)


http://exmail.qq.com/

有些书适合一读再读,每次读都会有不同的收获。

http://221.215.38.136/grcx/pages/qdyth/wsbs/login.jsp

一、尽量避免反复访问同一张表或几张表,尤其是数据量较大的表,可以考虑先根据条件提取数据的保存到临时表中,然后再做连接。

 

二、尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写,如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。

 

三、注意where条件的顺序 ,越能缩小范围的越要放在前面,应该根据索引顺序、范围大小来确定条件子句的前后顺序,尽可能的让字段顺序与索引顺序相一致,范围从大到小。

 

四、不要在where子句中的"="左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

 

五、尽量使用exists代替select count(1)来判断是否存在记录,count函数只有在统计表中所有函数是使用,而且count(1)比count(*)更有效率。

 

六、尽量使用">=", 不要使用">"

 

七、注意一些or子句和union子句之间的替换。

 

八、注意表之间连接的数据类型,避免不同数据之间的连接。

 

九、注意insert,update操作的数据量,防止与其他应用冲突,如果数据量超过200个数据页面(400k),那么系统将会进行锁升级,页级锁会升级成表级锁。

 

临时数据库的使用规范

1)尽量避免使用distinct、ordery by 、group by、having、join、compute,因为这些语句会加重tempdb的负担。

 2)避免频繁创建和删除临时表,减少系统表资源的消耗。

3)在新建临时表时,如果一次性插入数据量很大,那么可以使用select into 代替 create tabl,避免log,提高速度,如果数据量不大,为了缓和系统表的资源,建议先create table,然后insert.

 

  1. SELECT *  
  2. INTO new_table_name   
  3. FROM old_tablename 

iv. 如果临时表的数据量较大,需要建立索引,那么应该将创建临时表和建立索引的过程放在单独一个子存储过程中,这样才能保证系统能够很好的使用到该临时表的索引。

v. 如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先truncate table,然后drop table,这样可以避免系统表的较长时间锁定。
vi. 慎用大的临时表与其他大表的连接查询和修改,减低系统表负担,因为这种操作会在一条语句中多次使用tempdb的系统表。 

 
d)合理的算法使用:   
根据上面已提到的SQL优化技术和ASE Tuning手册中的SQL优化内容,结合实际应用,采用多种算法进行比较,以获得消耗资源最少、效率最高的方法。具体可用ASE调优命令:set statistics io on, set statistics time on , set showplan on 等。

 

sql 语法

 

1) 检索是否存在B记录,然后才检索

  select * from A exits (select * from B where conditions) 

 

2)检索以c1

   select c1 ,avg(c2) from A  group by c1 having count avg(c2) > 0

  查询每个部门的每种职位的雇员数

 select dept ,job,count(* ) from t group by dept, job

 

 

2012-7-16

1)不要用count(*)来判断是否有记录而是用if exits或者if not exits

 IF NOT Exists (SELECT PlayerSpecialTrainDetailID FROM PlayerSpecialTrainDetail    where  PlayerId = @PlayerId and UserID = @UserID  AND IsDue = 0)

2)存储过程用来返回是否有记录,如果有则返回0,如果没有则返回1

IF EXISTS(SELECT NULL FROM PlayerSpecialTrainDetail WITH(NOLOCK)WHERE PlayerID=@PlayerID AND IsDue=0)

BEGIN

SELECT CONVERT(BIT,0)

END

ELSE

BEGIN

SELECT CONVERT(BIT,1)

END

 

分享到:
评论

相关推荐

    sqlserver存储过程

    介绍sqlserver存储过程的写法及语法注意事项

    SQL Server 2000数据库教程(华夏学院)

    本书内容丰富,系统功能与具体实例相结合,讲解由浅入深,例子翔实丰富,每章精心安排了“教学重点”、“本章小结”和“本章习题”,部分小节还给出了相应的注意事项和提示,能巩固读者对SQL Server 2000的知识面的...

    SQL Server中视图,存储过程,注入

    视图的使用1>视图的创建(1)使用图文创建视图(2)使用T-SQL创建视图2> 删除视图使用T-SQL删除3>视图注意事项二.存储过程1.存储过程概念:2.存储过程分类1>系统存储过程2>自定义存储过程3>扩展存储过程3.调用存储过程4....

    Microsoft SQL Server 2005技术内幕: T-SQ程序设计.pdf

     2.3 tempdb相关的注意事项  2.4 表表达式  2.5 比较临时对象  2.6 综合练习——关系分区(Relational Division)  2.7 结论 第3章 游标  3.1 使用游标  3.2 游标开销  3.3 单独处理每一行  3.4 按顺序访问 ...

    Microsoft SQL Server 2005 Express Edition SP3

    此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储过程。为了避免出现此类问题,您必须在安装有 SQL Server Express 的服务器中完全启用 MS DTC 服务。 若要完全启用 MS DTC,请执行下列操作: 在...

    SQL Server 2008高级程序设计 4/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQL SERVER 2000开发与管理应用实例

    7.2.4 使用SQL Server的系统存储过程处理分页 216 7.3 特殊要求的分页处理 217 7.3.1 随机显示的分页处理 217 7.3.2 分类数据的分页处理 221 第 8 章 树形数据处理 223 8.1 单编号处理法 223 ...

    SQL Server 2008高级程序设计 2/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQLServer数据库设计规范.txt

    SQLServer数据库设计规范 作者:佚名 厚朴教育来源:网络 点击数:1446 更新时间:2008-12-2 1 相关的设计规范: 1.1 采用有意义的字段名 尽可能地把字段描述的清楚些。当然,也别做过头了,比如...

    ACCESS转SQLSERVER数据库的注意事项

    Access承重量太低,当你考虑升级到SQL Server时,并不只是个连接字符串需要改变,需要改变的还有很多

    如何把sqlserver数据迁移到mysql数据库及需要注意事项

    下面是小编日常整理的一种sqlserver数据库迁移的方法。 一、SQL Server中常用数据类型与MySQL不同的地方 二、将SQL Server数据迁移到MySQL需要注意的一些问题 1、唯一索引的不同,sql server的唯一索引的字段只能...

    SQLServer大数据库教案设计.doc

    《SQL Server数据库》 教案 第1章 SQL ... 4、小结: 本章重点介绍了SQL Server 数据类型的分类、使用方法和使用时的注意事项。课本19页表2.1列出了SQL Server常见的数据类型。 5、课堂练习: 创建一个数据类型,要求

    SQL Server 2008高级程序设计 5/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQL Server 2008高级程序设计 6/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    数据库编程-存储过程-触发器-级联更新-SQL-server-游标、全网最全最详细编程实战

    四、注意事项 1.调用存储过程时传递参数。 2.触发器不接受用户应用程序传递的参数。 五、实验学时:6学时 六、实验重点及难点 1. 函数的使用方法和技巧。 2. 创建和调用存储过程的语法。 3. 创建触发器的语法。 ...

    SQL Server 2008高级程序设计 1/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQL Server 2008高级程序设计 3/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    sqlserver2000基础(高手也有用)

    7.2.4 使用SQL Server的系统存储过程处理分页 216 7.3 特殊要求的分页处理 217 7.3.1 随机显示的分页处理 217 7.3.2 分类数据的分页处理 221 第 8 章 树形数据处理 223 8.1 单编号处理法 223 8.1.1 ...

    超市进销存销售管理系统 SQL Server 2005 C#

    使用说明 系统介绍 本系统属于小型的超市进销存销售管理系统,可以有效地对中小型超市...操作注意事项 (1)本系统登录用户名为:Tsoft,密码为:111。 (2)实例执行文件位置:TM\08\CHEXC\CHEXC\bin\Debug\CHEXC.exe

    sqlserver索引的原理及索引建立的注意事项小结

    SQL Server中的索引使用标准的B-树来存储他们的信息,如下图所示,B-树通过查找索引中的一个关键之来提供对于数据的快速访问,B-树以相似的键记录聚合在一起,B不代表二叉(binary),而是代表balanced(平衡的),而B...

Global site tag (gtag.js) - Google Analytics