电脑设备 - 网络编程 文章类 软件类
好好999
 | 网站首页 | 网络编程语言 | 星座情感文章 | 特殊软件下载 | 站长工具天下 | 
百度热门搜索: kappa女员工  网络成瘾诊断标准  2009无线节目巡礼  央视女主播柴璐  东楼kappa女 08万千星辉颁奖典礼 刘雯雯 芙蓉姐姐自杀 更多...
您现在的位置: 学习网 > 网络编程语言 > Oracle > 正文
 | 网络编程语言首页 | Dreamweaver | Html | Asp | Jsp | Php | Asp.net | Css | Javascript | Access | Mysql | Mssql | Oracle | Domain | Mainframe |
最 新 热 门
普通文章谈SQL Server 2005中的T-SQL增强
普通文章MySQL手册版本 5.0.20-MySQL优化(二
普通文章Sql server 2005的XML最佳实施策略
普通文章SQL Server实用经验与技巧不完全收
普通文章比较SQL Server2005和Oracle 10g R
普通文章动态创建SQL Server数据库、表、存
普通文章Oracle数据库分区表操作方法
普通文章Sql server教程SQL存储过程和算法
普通文章高级自定义查询、分页、多表联合存
普通文章SQL Server安装配置服务器失败的解
 
频 道 推 荐
普通文章解决.NET连到Oracle的oci.dll加载错
普通文章Sql server传给语句的输入数据验证
普通文章动态sql语句基本语法
普通文章存储过程之外:SQL注入深入防御
普通文章通过备份数据库恢复SharePoint文档
普通文章[Sql server]怎样将XML文件导入数据
普通文章Sql server如何用范围连接查找值
普通文章连接到 SQL Server 2005 时出现的问
普通文章SQL Server数据库查询语句精华使用
普通文章SQL Server 数据库连接字符串的声明
普通文章解决sqlserver2005中文版与vs2005的
普通文章在Oracle数据库10g中跟踪SQL
普通文章Oracle 10g第2版新特性之性能特性
普通文章Oracle 10g R2特性之数据仓库和集成
普通文章SQL Server 对文件内容进行全文检索
普通文章MS SQL 2005的新功能创建数据库快照
普通文章SQL Server安装文件挂起错误解决办
普通文章基于Access数据库的抽奖系统设计
普通文章如何为运行在SAP的SQL Server计划性
普通文章sql server几个容易出错的数据类型
 
频 道 推 广
 
Sql server一些常见性能问题的总结           ★★★
Sql server一些常见性能问题的总结
作者:佚名 文章来源:本站整理 更新时间:2008-5-14 19:48:53

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0

3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20

5.in 和 not in 也要慎用,否则会导致全表扫描,如:
select id from t where num in(1,2,3)
对于连续的数值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3

6.下面的查询也将导致全表扫描:
select id from t where name like '%abc%'
若要提高效率,可以考虑全文检索。

7.如果在 where 子句中使用参数,也会导致全表扫描。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。如下面语句将进行全表扫描:
select id from t where num=@num
可以改为强制查询使用索引:
select id from t with(index(索引名)) where num=@num

8.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where num/2=100
应改为:
select id from t where num=100*2

9.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where substring(name,1,3)='abc'--name以abc开头的id
select id from t where datediff(day,createdate,'2005-11-30')=0--‘2005-11-30’生成的id
应改为:
select id from t where name like 'abc%'
select id from t where createdate

[1] [2] [3] 下一页

更多精彩:学习网->http://www.haohao888.com.cn 网络编程->http://www.51wlpc.com 电脑设备->http://www.xpmaster.cn
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 相 关 文 章
    巧用表格来设计主页
    提高ASP页面的执行效率
    优化ASP应用程序技巧四则
    加速ASP程序的显示速度
    用ADO管理SQL Server数据库及其设备
    数据仓库——在“啤酒与尿布”中挖掘
    数据挖掘概述
    数据库综合开发实践
    也谈SQL SERVER 的锁
    如何构建银行数据仓库
    质量和风险管理
    项目管理
    一种简单方便的用户权限管理方法--使用菜单来管理用户权限(下)
    RDS 对象模型总结
    九大数据仓库方案特点比较
    数据仓库之我见 (设计篇)
    程序员的生命
    关于论坛上那个SQL微软面试题。我的解答方法 :-)
    利用SQL Server的全局临时表防止用户重复登录
    关于数据仓库的十个最长问的问题
    | 设为首页 | 加入收藏 | 投搞邮箱 | 友情链接 | 网站公告 | 版权申明 | |
    魔兽世界私服 - 魔兽世界私服 - 魔兽世界私服 - 魔兽世界私服 - 劲舞团私服 - 劲舞团私服 - 劲舞团私服 - 劲舞团私服 - 劲舞团私服 - 劲舞团私服 - 劲舞团私服 - 完美世界私服 - 传奇私服 - 变态传奇私服 - 及时雨外挂 - 热血传奇私服

    有事请点这里

    有事点这里

    copyright: 2007-2008 haohao888.com.cn 粤ICP备08105098号