教你快速掌握数据库查询优化的实用技巧

作者:33893 来源:赛迪网 时间:2008-11-28 15:10:00 

数据库查询优化的实用技巧:

本文中,abigale代表查询字符串,ada代表数据表名,alice代表字段名。

技巧一:

问题类型:ACCESS数据库字段中含有日文片假名或其它不明字符时查询会提示内存溢出。

解决方法:修改查询语句

#cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">

以下为引用的内容:
sql="select * from ada where alice like '%"&abigale&"%'"
改为
sql="select * from ada"
rs.filter = "alice like '%"&abigale&"%'"

技巧二:

问题类型:如何用简易的办法实现类似百度的多关键词查询(多关键词用空格或其它符号间隔)。

解决方法:

#cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">

以下为引用的内容:

'//用空格分割查询字符串
ck=split(abigale," ")
'//得到分割后的数量
sck=UBound(ck)

sql="select * ada where"

在一个字段中查询
For i = 0 To sck
SQL = SQL & tempJoinWord & "(" & _
"alice like '"&ck(i)&"%')"
tempJoinWord = " and "
Next

在二个字段中同时查询
  #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">

以下为引用的内容:
           

For i = 0 To sck
SQL = SQL & tempJoinWord & "(" & _
"alice like '"&ck(i)&"%' or " & _
"alice1 like '"&ck(i)&"%')"
tempJoinabigale = " and "
Next


技巧三:提高查询效率的几种技巧

1. 尽量不要使用 or,使用or会引起全表扫描,将大大降低查询效率。

2. 经过实践验证,charindex()并不比前面加%的like更能提高查询效率,并且charindex()会使索引失去作用(指sqlserver数据库)

3. alice like '%"&abigale&"%' 会使索引不起作用

like '"&abigale&"%' 会使索引起作用(去掉前面的%符号)

(指sqlserver数据库)

标签:
0
投稿

猜你喜欢

  • Javascript:window对象出身何处

    2007-08-28 15:16:00
  • Dreaweaver MX 2004新功能:图片处理

    2010-09-02 12:38:00
  • 带农历的JavaScript日期时间js代码

    2010-08-01 10:29:00
  • CSS 超链接图标规范 V1.0

    2007-12-28 12:05:00
  • JavaScript中的私有成员 Javascript教程

    2008-12-02 17:57:00
  • 5个有效改进网页UI设计的技巧

    2008-12-19 12:04:00
  • 如何让12px以下的文字最佳显示

    2008-01-24 18:39:00
  • 也谈 CSS Sprites

    2009-10-06 15:14:00
  • INSERT INTO SELECT语句与SELECT INTO FROM语句的一些区别

    2012-06-06 19:38:28
  • 一个用JavaScript写的本周是本学期第几周的程序

    2009-03-09 12:49:00
  • WEB设计经验-来自Microsoft

    2008-05-15 07:30:00
  • Web设计色彩速查表

    2009-12-21 16:24:00
  • 查询字符串中包含特殊字符的问题

    2009-01-09 13:13:00
  • asp中的rs.open于conn.execute的区别

    2009-10-29 12:12:00
  • 解析arp病毒背后利用的Javascript技术

    2007-08-08 09:55:00
  • ASP+JavaScript的完整的日历使用

    2008-10-11 12:16:00
  • 用SQL语句删除重复记录的四种方法

    2011-05-03 09:25:00
  • 某年第一周开始日期sql实现方法

    2012-02-25 20:02:30
  • js版sliderBar(滑动条)控件

    2008-10-18 15:59:00
  • oracle 分页 很棒的sql语句

    2009-07-02 11:44:00
  • asp之家 网络编程 m.aspxhome.com