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

SQL语句的优化

 SQL语句级别的优化是我们实际工作中接触最多的,几乎所有的数据库应用说到底都是SQL语句的具体执行,因此如何对SQL脚本本身进行优化,提高执行效率就显得尤为重要。以下是一些通用的设计原则。
   (1)使用select语句查询时,尽量不要使用select * 语句,而是应该指明具体要查询的字段,提取的字段数量越少,查询的速度越快。
  (2)使用Order by 语句排序时,最好按照聚簇索引的字段排序,这样会大大提高排序的速度。
   (3)尽量不要使用or关键字,或是 in(),否则会引起全表扫描,大大减低数据的检索速度。
      比如数据量较大时(几十万记录),不要使用如下的SQL语句:
      Select count(*) from student where id in('0','1')
      Select count (*) from student where id='0' or id='1'
    应该拆分成如下两条SQL语句:
      select count(*) from student where id ='0'
      select count (*)from student where id='1'
   (4)对笛卡尔积,游标,循环要谨慎使用。
   (5)存储过程,函数,包,触发器等尽量不要超过1000行,之间调用不要复杂。
   (6)检查嵌套,递归,子查询的深度,最好不要超过3层。
   (7)order by ,group by ,distinct 这些语句运行时相对来说会占用较大的内存,使用时需要加以注意。
   (8)尽量少用NOt,包括NOT in 和not exist
   (9)between 1 and  10 要比 in (1,10)字段执行效率高。
   (10)当where语句后有多个查询条件时,应该将数据量大的表的查询过滤条件放在前面。
   (11)like 语句是很耗时的,如果条件允许的话,可以使用功能相同的语句代替,比如
         select name from student where ID like '100???'这条语句,会对全表进行顺序扫描;可以改为  select name from student where ID >100000,这样在执行查询时就会利用索引来查询,显然会大大提高速度。
   (13)尽量不要再SQL语句中进行对列的操作,包括数据库函数,计算表达式等,否则会导致全表扫描,要尽可能将操作移至等号右边。
&n


相关文档:

SQL查询效率 100w数据查询只要1秒

机器情况
p4: 2.4
内存: 1 G
os: windows 2003
数据库: ms sql server 2000
目的: 查询性能测试,比较两种查询的性能
SQL查询效率 step by step
-- setp 1.
-- 建表
create table t_userinfo
(
userid int identity(1,1) primary key nonclustered,
nick varchar(50) not null default '',
classid int not nul ......

SQL数据库快照


数据库快照是MSSQL2005的新功能,仅在 Microsoft SQL Server 2005 Enterprise Edition 中可用。而且SQL Server Management Studio 不支持创建数据库快照,创建快照的唯一方式是使用 Transact-SQL。
数据库快照是数据库(称为“源数据库”)的只读静态视图。在创建时,每个数据库快照在事务上都与源数据库一致 ......

SQL语句中 N 后接续字符串的作用

如:SET @sql=N'SELECT * from stu'
其中“N”的作用是表示后面的编码格式为unicode编码
DECLARE @rst INT,@sql NVARCHAR(4000)
SET @sql=N'SELECT * from tb '
EXEC sp_executesql @sql,N'@rst INT OUTPUT',@rst OUTPUT
SELECT @rst
......

LINQ to SQL更新数据库操作

使用LINQ to SQL建模Northwind数据库
在这之前一起学过LINQ to SQL设计器的使用,下面就使用如下的数据模型:
当使用LINQ to
SQL设计器设计以上定义的五个类(Product,Category,Customer,Order和OrderDetail)的时候,每个类中的属性
都映射了相应数据库中表的列,每个类的实例则代表了数据库表中的一条记录。另外, ......

sql完全解析

1、简单查询
求出在1988年以前被雇佣的销售人员
SELECT NAME
 from SALESREPS
WHERE HIRE_DATE<'01-JAN-88'
列出其销售量低于销售目标的80%的销售点
SELECT CITY,SALES,TAGET
from SALESPEPS
WHERE SALES<0.8*TAGET ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号