SQL语句优化
对同一张表进行两种方式查询(结果集相同):
case1 查询条件:包括计算机名,昵称,添加时间等等一些限制条件字段。而且需联表查询别的表
查询数据量: 100万 200万
单纯执行SQL语句所需时间:31毫秒 31毫秒
循环遍历数据集所需时间: 57秒 1分50秒
case 2查询条件:无
select * from 【表】
查询数据量: 100万 200万
单纯执行SQL语句所需时间:31毫秒 31毫秒
循环遍历数据集所需时间: 20秒 40秒
注意下循环遍历数据集时间(纵向100万的,或者200万的都行),查询条件不一样,尽管最终查询数据量是一样的,但是遍历时间差别很大。
为什么呢?
可不可以这么理解,SQL语句越复杂(或者说优化程度没那么高),影响的不是SQL本身的执行,而是数据的提取呢?
相关文档:
【引用:猛犸技术文章摘要
】
经测试,方法二可成功删除数据,方法一、三 删除数据失败。请路过的朋友,指点迷津。。。
问题:一个表有自增的ID
列,表中有一些记录内容重复,也就是说这些记录除了ID
不同之外,其他的信息都相同。需要把重复的记录保留一条,剩下的删除
方法一:还是2000
年的时候一位Oracl ......
treeview.aspx中代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="treeview.aspx.cs" Inherits="treeview" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999 ......
--如果是实表可以用
if exists (select * from sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[表名]
--如果是临时表可以用(说明,如果用查找实表方法来打临时表会找不到.发布区别对代.)
if object_id('tempdb..##temp') is not null
......
最近用到日期范围的查询,用到了between,但是发现如果日期带时间的话,BETWEEN '2010-1-4' AND
'2010-1-4'这样的语句是查不到数据的,后来想到了一种改进方法,供大家参考。
如下:
BETWEEN '2010-1-4' AND DATEADD(day, 1, '2010-1-4')
用了DATEADD以后,效果很不错 ......