易截截图软件、单文件、免安装、纯绿色、仅160KB

《软件开发性能优化系列》之Sql性能优化(二)

  一、SQL拼写建议 1、查询时不返回不需要的行、列       业务代码要根据实际情况尽量减少对表的访问行数,最小化结果集,在查询时,不要过多地使用通配符如:select * from table1语句,要用到几列就选择几列,如:select col1,col2 from table1;在可能的情况下尽量限制结果集行数如:select top 100 col1,col2,col3 from talbe2,因为某些情况下用户是不需要那么多的数据的。 2、合理使用EXISTS, NOT EXISTS字句      如下所示:      SELECT SUM(T1.C1) from T1 WHERE ((SELECT COUNT(*) from T2 WHERE T2.C2=T1.C2)>0)      SELECT SUM(T1.C1) from T1 WHERE EXISTS(SELECT * from T2 WHERE T2.C2=T1.C2)        两种产生相同的结果,但是后者的效率显然要高过于前者。银行后者不会产生大量锁定的表扫描或是索引扫描。        经常需要些一个T_SQLL语句比较一个父结果集和子结果集,从而找到是否存在在父结果集中有而在子结果集中乜嘢的记录,如:      SELECT _a.hdr_key from hdr_tb1 a               -----------tb1 a 表示tb1用别名a代替      WHERE NOT EXISTS (SELECT * from dt1_tb1 b WHERE a.hdr_key = b.hdr_key)        SELECT _a.hdr_key from hdr_tb1 a               -----------tb1 a 表示tb1用别名a代替      LEFT JION dt1_tb1 b ON  a.hdr_key = b.hdr_key WHERE b.hdr_key IS NULL        SELECT hdr_key  from hdr_tb1      WHERE hdr_key NOT IN (SELECT hdr_key from dt1_tb1)        三种写法都可以得到同样的结果集,但是效率是依次降低 3、充分利用连接条件      在某种情况下,两个表之间可能不止一个的连接条件,这时在where 字句中将谅解条件完整的写上,有可能大大提高查询速度。      例:     a)、SELECT SUM(A.AMOUNT) from ACCOUNT A left j


相关文档:

航空公司管理系统(VC++ 与SQL 2005)

系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
      这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

sql server的随机函数newID()和RAND()  

sql server的随机函数newID()和RAND()  
  SELECT * from Northwind..Orders ORDER BY NEWID()
  --随机排序
  SELECT TOP 10 * from Northwind..Orders ORDER BY NEWID()
  --从Orders表中随机取出10条记录  
  示例  
  A.对变量使用 NEWID 函数
  以下示例使用 NEWID() 对声明为 uniq ......

SQL注入教程之高级篇

看完入门篇和进阶篇后,稍加练习,破解一般的网站是没问题了。但如果碰到表名列名猜不到,或程序作者过滤了一些特殊字符,怎么提高注入的成功率?怎么样提高猜解效率?请大家接着往下看高级篇。
第一节、利用系统表注入SQLServer数据库
SQLServer是一个功能强大的数据库系统,与操作系统也有紧密的联系,这给开发者带来了 ......

Sql(事物+游标)使用方法

--当两个或两以上的操作要么都执行,要么都不执行时要用事务。
1. Sql写法(事物+游标)
--开始事务
BEGIN TRAN
--不显示计数信息
SET NOCOUNT ON
DECLARE @ProjNo varchar(50),@CusNo varchar(50)
--声明游标
DECLARE CRMPSContact_cursor CURSOR FOR 
SEL ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号