说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

请问在两个字段中的组合查询,什么方式查询最快?

编辑:说三道四文库 发布时间:2017-10-18 07:18
HTML文档下载 WORD文档下载 PDF文档下载
请问在两个字段中的组合查询,什么方式查询最快?(SQL Server2000),定义索引的种类的区别呢?(30万条记录中),字段类型用Char、VarChar或Int哪一种更好?
请高手指教?
请高手指教? 
请高手指教? 
INT类型!
请高手指教? 
高手指教?  
都差不多
看看下面的文章也许对你有帮助!

Sybase SQL Server索引的使用和优化

--------------------------------------------------------------------------------
  在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡 量应用系统成败的标准。而采用索引来加快数据处理速度也成为广大数据库用户所 接受的优化方法。 

  在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。因为查询执行的大部分开销是磁盘I/O,使用索引提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读表的每一个数据页,如果有索引指向数据值,则查询只需读几次磁盘就可以了。所以如果建立了合理的索引,优化器就能利用索引加速数据的查询过程。但是,索引并不总是提高系统的性能,在增、删、改操作中索引的存在会增加一定的工作量,因此,在适当的地方增加适当的索引并从不合理的地方删除次优的索引,将有助于优化那些性能较差的SQL Server应用。实践表明,合理的索引设计是建立在对各种查询的分析和预测上的,只有正确地使索引与程序结合起来,才能产生最佳的优化方 案。本文就SQL Server索引的性能问题进行了一些分析和实践。

  一、聚簇索引(clustered indexes)的使用

  聚簇索引是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序。由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎总是比使用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页。建立聚簇索引的思想是:

  1、 大多数表都应该有聚簇索引或使用分区来降低对表尾页的竞争,在一个高事务的环境中,对最后一页的封锁严重影响系统的吞吐量。

  2、 在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在那些包含范围检查(between、<、<=、>、>=)或使用group by或order by的查询时,一旦找到具有范围中第一个键值的行,具有后续索引值的行保证物理上毗连在一起而不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。

  3、 在一个频繁发生插入操作的表上建立聚簇索引时,不要建在具有单调上升值的列(如IDENTITY)上,否则会经常引起封锁冲突。

  4、 在聚簇索引中不要包含经常修改的列,因为码值修改后,数据行必须移动到新的位置。

  5、 选择聚簇索引应基于where子句和连接操作的类型。聚簇索引的侯选列是:

  ● 主键列,该列在where子句中使用并且插入是随机的。

  ● 按范围存取的列,如pri_order > 100 and pri_order < 200 。

  ● 在group by或order by中使用的列。

  ● 不经常修改的列。

  ● 在连接操作中使用的列。

  二、非聚簇索引(nonclustered indexes)的使用

  SQL Server缺省情况下建立的索引是非聚簇索引,由于非聚簇索引不重新组织表中的数据,而是对每一行存储索引列值并用一个指针指向数据所在的页面。换句话说非聚簇索引具有在索引结构和数据本身之间的一个额外级。一个表如果没有聚簇索引时,可有250个非聚簇索引。每个非聚簇索引提供访问数据的不同排序顺序。在建立非聚簇索引时,要权衡索引对查询速度的加快与降低修改速度之间的利弊。另外,还要考虑这些问题:

  ● 索引需要使用多少空间。

  ● 合适的列是否稳定。

  ● 索引键是如何选择的,扫描效果是否更佳。

  ● 是否有许多重复值。

  对更新频繁的表来说,表上的非聚簇索引比聚簇索引和根本没有索引需要更多的额外开销。对移到新页的每一行而言,指向该数据的每个非聚簇索引的页级行也必须更新,有时可能还需要索引页的分理。从一个页面删除数据的进程也会有类似的开销,另外,删除进程还必须把数据移到页面上部,以保证数据的连续性。所以,建立非聚簇索引要非常慎重。非聚簇索引常被用在以下情况: 

  ● 某列常用于集合函数(如Sum,....)。

  ● 某列常用于join,order by,group by。

  ● 查寻出的数据不超过表中数据量的20%。

  三、覆盖索引(covering indexes)的使用

  覆盖索引是指那些索引项中包含查寻所需要的全部信息的非聚簇索引,这 种索引之所以比较快也正是因为索引页中包含了查寻所必须的数据,不需去访 问数据页。 如果非聚簇索引中包含结果数据,那么它的查询速度将快于聚簇索引。

  但是由于覆盖索引的索引项比较多,要占用比较大的空间。而且update 操 作会引起索引值改变。所以如果潜在的覆盖查询并不常用或不太关键,则覆盖索引的增加反而会降低性能。

  四、索引的选择技术

  p_detail是住房公积金管理系统中记录个人明细的表,有890000行,观察在不同索引下的查询运行效果,测试在C/S环境下进行,客户机是IBM PII350(内存64M),服务器是DEC Alpha1000A(内存128M),数据库为SYBASE11.0.3。

  1、 select count(*) from p_detail where op_date>’19990101’ and op_date<’19991231’ and pri_surplus1>300 

  2、 select count(*),sum(pri_surplus1) from p_detail where op_date>’19990101’ and pay_month between ‘199908’ and ’199912’

  不建任何索引 查询1 1分15秒

  查询2 1分7秒

  在op_date上建非聚簇索引 查询1 57秒

  查询2 57秒

  在op_date上建聚簇索引 查询1 <1秒

  查询2 52秒

  在pay_month、op_date、pri_surplus1上建索引 查询1 34秒

  查询2 <1秒

  在op_date、pay_month、pri_surplus1上建索引 查询1 <1秒

  查询2 <1秒

  从以上查询效果分析,索引的有无,建立方式的不同将会导致不同的查询效果,选择什么样的索引基于用户对数据的查询条件,这些条件体现于where从句和join表达式中。一般来说建立索引的思路是:

  (1)、主键时常作为where子句的条件,应在表的主键列上建立聚簇索引,尤其当经常用它作为连接的时候。

  (2)、有大量重复值且经常有范围查询和排序、分组发生的列,或者非常频繁地被访问的列,可考虑建立聚簇索引。

  (3)、经常同时存取多列,且每列都含有重复值可考虑建立复合索引来覆盖一个或一组查询,并把查询引用最频繁的列作为前导列,如果可能尽量使关键查询形成覆盖查询。

  (4)、如果知道索引键的所有值都是唯一的,那么确保把索引定义成唯一索引。

  (5)、在一个经常做插入操作的表上建索引时,使用fillfactor(填充因子)来减少页分裂,同时提高并发度降低死锁的发生。如果在只读表上建索引,则可以把fillfactor置为100。

  (6)、在选择索引键时,设法选择那些采用小数据类型的列作为键以使每个索引页能够容纳尽可能多的索引键和指针,通过这种方式,可使一个查询必须遍历的索引页面降到最小。此外,尽可能地使用整数为键值,因为它能够提供比任何数据类型都快的访问速度。

  五、索引的维护

  上面讲到,某些不合适的索引影响到SQL Server的性能,随着应用系统的运行,数据不断地发生变化,当数据变化达到某一个程度时将 会影响到索引的使用。这时 需要用户自己来维护索引。索引的维护包括:

  1、重建索引

  随着数据行的插入、删除和数据页的分裂,有些索引页可能只包含几页数据,另外应用在执行大块I/O的时候,重建非聚簇索引可以降低分片,维护大块I/O的效率。重建索引实际上是重新组织B-树空间。在下面情况下需要重建索引:

  (1)、数据和使用模式大幅度变化。

  (2)、排序的顺序发生改变。

  (3)、要进行大量插入操作或已经完成。

  (4)、使用大块I/O的查询的磁盘读次数比预料的要多。

  (5)、由于大量数据修改,使得数据页和索引页没有充分使用而导致空间的使用超出估算。

  (6)、dbcc检查出索引有问题。

  当重建聚簇索引时,这张表的所有非聚簇索引将被重

  建.

  2、索引统计信息的更新

  当在一个包含数据的表上创建索引的时候,SQL Server会创建分布数据页来存放有关索引的两种统计信息:分布表和密度表。优化器利用这个页来判断该索引对某个特定查询是否有用。但这个统计信息并不动态地重新计算。这意味着,当表的数据改变之后,统计信息有可能是过时的,从而影响优化器追求最有工作的目标。因此,在下面情况下应该运行update statistics命令:

  (1)、数据行的插入和删除修改了数据的分布。

  (2)、对用truncate table删除数据的表上增加数据行。

  (3)、修改索引列的值。

  六、结束语

  实践表明,不恰当的索引不但于事无补,反而会降低系统的执行性能。因为大量的索引在插入、修改和删除操作时比没有索引花费更多的系统时间。例如下面情况下建立的索引是不恰当的:

  ● 在查询中很少或从不引用的列不会受益于索引,因为索引很少或从来不必搜索基于这些列的行。

  ● 只有两个或三个值的列,如男性和女性(是或否),从不会从索引中得到好处。

  另外,鉴于索引加快了查询速度,但减慢了数据更新速度的特点。可通过在一个段上建表,而在另一个段上建其非聚簇索引,而这两段分别在单独的物理设备上来改善操作性能。
SMTP/POP3收发邮件的C#类库SmtPop.Net 用C#编写的Telnet开源类库 Visual Studio C#创建Windows服务(Windows Service) C#取得Windows服务列表 C#编程自动安装Windows服务 C#安装/删除 .NET Windows服务 C#启动、停止、重启Windows服务 jQuery实现Ajax提交form表单的简单方法 字符串String与枚举Enum之间的转换[C#] Javascript统计DOM元素里文字的行数 C#从Web网站下载文件 C#得到区域名称列表 C#合并多个PrintDocument WpWidgetLibrary - Windows Phone的HTML部件库(Widgets) 让你不再害怕C语言指针 C语言概述-C语言教程 Turbo C 2.0集成开发环境的使用(上)-C语言教程 Turbo C 2.0集成开发环境的使用(下)-C语言教程 程序的灵魂—算法-C语言教程 数据类型、运算符与表达式(上)-C语言教程 数据类型、运算符与表达式(下)-C语言教程 最简单的C语言顺序程序设计-C语言教程 分支结构程序-C语言教程 循环控制-C语言教程 数值数组-C语言教程 字符数组-C语言教程 函数(上)-C语言教程 函数(下)-C语言教程 预处理命令-C语言教程 C语言指针(上)-C语言教程 C语言指针(下)-C语言教程 怎样判断一个线程已结束 我用new新建了若干个基类是cwnd的窗体cmywnd,然后想在每个窗体内定时让它们自己消失,我应该用什么函数?是destroywindow吗?最后还用不 vs.net 2003 中文版 的帮助MSDN是不是有问题? 清问这个SQL有什么错,还是FB1。0不支持? 是我的usb口的问题吗?? 怪事 急 路径绝对正确,为什么服务器只能下载rar 不能下载EXE 文件 已知,f(x)=arctanx,其二导f''(x)=(-2x)/(1+x*x)^2,f''(0)=0,试: 一个有趣的问题,请大家看一个小程序,来者有分。 这个写者优先是不是有问题????麻烦看一下,小弟实在看不出错在哪里 请问有没有办法得到[系统托盘]上其它程序的所显示的Icon?? 已知,十六进制(34.6)16=(28.75)10(十进制) 高手推荐几个Palm开发的网站?最好有源代码! 请教一个问题 触发器(加密)内容可以查看吗 怪,文件路径绝对正确,EXE文件不能下载,其它格式正常。 在编写的用户控件中公开所引用控件的事件怎么实现啊 这是我的usb口的问题吗? 考程序员前想先考全国三级,请问三级种哪个科目考C编程?何时报名? 调用DLL时候出现Bad Dll calling convention错误,为什么?代码如下 如何建立一个小数据库? 我想问下,网络技术到底是指什么??? 为什么会出现这个问题呢??急救??? 在不同操作系统出现不能正常运行的问题,和默认字体语系乱码问题 C# 静态类成员 新手请求各位前辈帮助 如何查询我连接到哪个数据库? 哭着请求帮助。。。。。页面显示问题!!在线等着 网络技术到底是指什么???? 我想在<<三国九>>里输入正确的中文,有法子么? 能帮我改改么? 紧急求助,请高手支招 请问在JTABLE中如何将某几行设置成可以被选择的,其他几行设置成不能被选中的? 请问怎样修改SDI框架的标题及去掉最大化按钮??? 在自定义的用户控件上公开引用windows控件的事件怎么做啊!!谢谢 2003中为什么IDE设备只能用PIO模式? 在FAQ里见到这样一句,不明白什么意思 怎么我用vc 的 odbc 做数据库时,工程名为try ,在工程工作区的“class view”面板里没有tryview类的? 不能使用xmldocfile() 文档对象的问题 关于键盘纪录,高手 如何使用IPAddress控件? 初学者问:怎么用UpdateAllViews()? 无法创建asp.net应用程序 大家帮帮我吧,我都快崩溃了 中文乱码的问题 !!谁在VMWare 3.2里装过RedHat 9.0和RedFlag 3.0,请看看这些问题(100分)!! 如何使在输入框选中的文字在提交后仍然显示在输入框中? 无法创建asp.net应用程序 高手在上,请问怎么样在win2k中实现关闭程序和绘图[内详] 初学者问:如何在listview中查找其中一行? 怎样在调试窗口中看到变量值? 求出摩擦力就可以了 北方冬天紫檀手串要包浆晚上需要放在袋子里吗 一个长方形的长是10cm,宽是8cm,高是3cm,把它切成两个完全一样的小长方体.它的表面积最多增加多少?最少增加多少? 摩擦力的方向是 小肠黏膜细胞内合成的脂蛋白主要是低密度脂蛋白 对还是错的 建一个高2米宽10米长24米的彩钢房需多少钱?直筒子的 声控灯原理 任何三角形,都能折叠成一个长方形,剪几个三角形试一试,折折看,你知道这是为什么吗? 声速是由传递声音的物质决定的这句话对吗? 关于摩擦力的问题重10N的磁铁在黑板上静止,则黑板对磁铁的摩擦力的大小为______,如再用5N的压力F静压在磁铁上,则黑板对磁铁的摩擦力的大小为______,如要将磁铁竖直向上匀速运动,则拉力为 不管是一个什么形状的三角形,都能折叠成一个长方形,剪几个三角形试一试,折1 设P为等边△ABC内一点,PA=3,PB=4,PC=5,则∠APB的度数为( ) 合力3T叉车机械式换挡变速箱,前进后退均不行走,是变速箱什么坏了 如图,三角形abc中,ab=8,ac=6,bc=9,如果动点d以每秒2个单位长的速度,从点b出发沿边ba向点a运动,直线de平行bc,交ac于e,.记x秒时de的长度为y,写出y关于x的函数关系式,并画出它的图像 在三角形ABC中,AB=AC=6,P是BC上任意一点,求PC*PB+PA*PA的值(提示:利用勾股定理)不要用三角函数,就用勾股定理! 解析:如图所示,固定斜面倾角为a,整个斜面长分别为AB、BC两段,BC=2AB,小物块P(可视为质点)与AB、BC两段斜面间的动摩擦因数分别为μ1,μ2 ,已知P由静止开始从A点释放,恰能滑动到C点而停下,那么a 紫檀手串多久出包浆 细胞呼吸中的[H] 怎么读 单摆 简谐振动 急救当单摆摆角不大时,什么力构成使单摆做简谐振动的恢复力呢?请站在教师的角度解释这个问题,不懂的或者转帖者勿扰, 合力叉车490发动机总是爱坏水泵是怎么回事 {甲乙丙共有1580元,甲乙钱数比是2;3,乙丙钱数比是5;4,甲乙丙各有多少元}{甲乙丙共有1850元,甲乙钱数比是2;3,乙丙钱数比是5;4,甲乙丙各有多少元} HA1392接成BTL有多大功率 合力叉车1.5T无级变速480发动机坏了可以换哪种发动机 续电器如果弹簧烂了还能正常工作吗? 猜鲁迅著作:来回度步 合力叉车5t,2003年,无级变速前后各2档的,变速箱型号是Y10,油标尺杆没了,不知加多少油量.说明书也没了,我参考了大连车是18升,但我感觉不够.不知那位能有此车,量一下标杆长度,或说明书上标 三角形的五个心在那?(请截图) 望有详解有A,B两地,甲乙从A地出发,丙从B地出发,甲到B地需t甲,乙到B地需t乙,乙丙相遇需t甲/p,甲丙相遇需t乙/q,求丙到地所需时间对不起,是丙到A地所需时间 一条山路240米,小华上山每分钟走40米,10分钟往返一次,小华下山平均每分钟走多少米? 三角形的四个心是什么 用长为l的木条围成上半部分是半圆下半部分是矩形的窗框,中间有两根横档,要是透光性最好,应如何设计?本人不会弄图,请各路英雄谅解!我满意的话,横档要木头! 小华从家到学校去上学每分钟行240米,已经走了走了4分钟,小华的爸爸发现小华忘带数学作业,就马上骑自行车追,6分钟赶上把作业给小华,小华的爸爸用怎样的速度赶上小华? 三角形的五个心三角形有五个“心”,这个大家都知道.那这五个“心”有什么定理啊,或者应用之类的东西么?我还没有学过,接触到这些便想了解.五个心是什么这个我知道,我只是不知道在做 y=|x+2|+|2x-1| 写成分段函数,画出图像,求直域!不理解 绝对值的变号,我知道要分成3段 但是X的范围 为什么取这范围 无法理解 如图所示,两物体A,B(小的是A)通过跨接于定滑轮的轻绳连接,若两物体处于相对静止(0°<夹角<90°)下列说法正确的是A.绳上的拉力等于A的重力 B.B对地一定有压力 C.B对地 如图所示在竖直平面内固定着半径为R的光滑的1/4圆弧槽,它的末端水平,上端离地面高H,一个小球从上端无初速度下滑.求(1)小球做平抛运动的时间(2)小球做平抛运动的水平射程S 和摩擦力有关如图所示,人重600N,木块A重400N,人与A,A与地面的动摩擦因数均为0.2,现人用水平力拉绳,使他与木块一起向右作匀速直线运动,运动摩擦不计,求(1)人脚对A的摩擦力的方向和大小图 具有防止动脉粥样硬化作用的脂蛋白是?A.CM B.VLDL C.LDL D.HDL 德国阳光电池有一个参数是C10 1.80VpC 20℃ 一块地有2.5公顷,用2台同样的抽水机浇水,要5小时,平均每台抽水机每小时可以浇地多少公顷?今天就要, 三个三角形变成九个,怎样做? 怎么证明磁铁已经消磁了?如果用高斯计测量的话,数据在那个范围才表示磁铁已经消磁了 摩擦力和什么有关 W如何画三笔变成九个三角形? 讨论函数f(x)={-x-1,x>0;-x+1,x 摩擦力与什么有关 均值不等式为什么要证明等号成立今天刚学,做题时不会了.均值不等式里证明等号成立有什么用?最好再介绍一下均值不等式求最值的大致步骤. 一个长方体长24cm,把它锯成每段是8cm的小段后,表面积增加了16平方厘米,求原来这个长方体的体积. 摩擦力跟什么有关? 均值不等式ab异号如果ab为异号,那么均值不等式怎么用?如果ab异号,那么均值不等式的公式是什么? 消防水带规格10-65-20,10,65, 发电机电压高低和什么有关 均值不等式,求:(a+b+c)/3≥_______,当且仅当_____时取等号? 有衬里消防水带的有多长,口径有多少厘米? 语音声控灯的原理是什么? 低密度脂蛋白进入细胞的方式是 函数y=1/(x+3) 的间断点是? 想买小米盒子,现在能买到吗? 由图为什么可以知道携带胆固醇的低密度脂蛋白进入细胞的方式是胞吞和胞吐? 为什么曲线运动所受合外力有可能是恒力有没有例子说一下 谢谢了 IAEA称与伊朗会谈富有成果 将于1叙反对派要求解除卜拉希米叙问题特别代IAEA称与伊朗会谈富有成果 将于1美驻吉尔吉斯使馆收到不明信封 内装白金砖国家共议“气候变化对粮食安全不利消息称美考虑停止对盟国领袖监听 未做快讯:俄罗斯一架武装直升机在莫斯科市中国游客成海外大买家 凸显国内免税业中非民兵与前叛军爆发冲突 造成近40英媒:养老金制度需考虑气候变化 否则格陵兰岛取消铀矿开采禁令恒天然调查:无肉毒杆菌风险 应改进生省委常委分赴教育实践活动联系点参加指台\"立委\":美国这种邪恶国家一定男子“拍卖初夜”以2600美元成交 外交部:日本应停止渲染外部威胁 说明金砖国家共议“气候变化对粮食安全不利安徽宁国副市长看望百岁老人 疑似PS美驻吉尔吉斯使馆收到不明信封 内装白“萨卡什维利时代”结束 格俄关系被指韩国外长称韩日关系问题本质是日错误历莫斯科举行纪念卫国战争胜利71周年阅专家谈百度搜索调查结果:将对中国互联中国军力已仅次美俄 ,日本为何仍不服亚欧互联互通媒体对话会在广州举行 聚[美丽河北]康保启动“爱心家长关爱留长安航空西安 珠海航班首航飞机因故取福建建阳两栋民房被泥石流冲塌 4人死印观察中国航母自取其辱 感叹:已经文攻武卫“:中国‘兵出奇招\'!美国“银元”“铜元”收藏常用行话,一篇全比瑜伽、运动更彻底的养生术——辟谷阿里数据高管车品觉离职,加盟红杉资本罗保铭会见故宫博物院院长单霁翔 探讨海南省科协成立科技成果孵化平台 助力西宁机场开辟“生命通道” 救助断肢患广东桥梁已建4.56万座 建设日趋复洪涝致江西26.9万人受灾2死 抚河福州机场持续大雾 42个航班取消南海是中国的!菲律宾瞎胡闹,可谓\"美插手南海被批“炮舰政策” 中方将不中俄一旦深度合作:将天下无敌,碾压日
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘