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本身的执行,而是数据的提取呢?
相关文档:
Sql Server中的日期与时间函数
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
......
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 ......
一、适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人。
二、介绍:在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范,将会影响以后的系统维护 ......
最近用到日期范围的查询,用到了between,但是发现如果日期带时间的话,BETWEEN '2010-1-4' AND
'2010-1-4'这样的语句是查不到数据的,后来想到了一种改进方法,供大家参考。
如下:
BETWEEN '2010-1-4' AND DATEADD(day, 1, '2010-1-4')
用了DATEADD以后,效果很不错 ......
你是否遇到过 想在 字符串里面写 SQL语句,但是总是遇到 某些符号不会写.
比如说在字符串里面写个变量.
like: str sql="select * from abc where id= ' "++" ' "
id的变量应 先用单引号然后“+”号。
今天遇到个很长的SQL语句,而且SQL语句里面嵌套了字符串。当时根本不会写 ......