轻清净静的美好
网络教学资源搜索增强论述论文
摘要: 网络教学资源服务对象包括教师、学生、社会培训者等,其对应多种学科、类别,资源数量较大,用户需要通过搜索获取所需的特定资源,因此如何提高资源搜索的性能和实用性就十分重要。文章主要针对网络教学资源的搜索性能、实用性进行搜索增强研究。
关键词: 教学资源;搜索增强;性能;实用性
伴随着网络技术的不断发展,教育对教学资源建设的重视,为网络教学资源库的建设提供了契机。网络教学资源服务的对象包括:教师、学生、社会培训者等,其对应多种学科、类别,资源数量较大。用户对资源的需求不一样,需要通过搜索获取所需的特定资源,因此如何提高资源搜索的性能、实用性是网络教学资源库开发所需要解决的一个重要问题。本文主要针对网络教学资源搜索的性能、实用性进行增强研究。
1搜索性能增强策略研究
使用索引提高搜索性能
索引是对列值进行排序的一种结构,正确地利用索引能够加快对数据表相应信息的访问[1]。索引虽然能够提高数据的检索性能,但是也提高了数据维护的成本。因此,要合理使用索引,在创建索引前,需要确定使用哪些列和要创建的索引类型。索引包括聚集索引和非聚集索引[2]。聚集索引适用于含有大量的不重复值的列、可用于范围值计算的列、结果集较大的查询及经常使用连接或分组的列,非聚集索引中键值逻辑顺序和物理顺序没有关系。将主键设置为聚集索引并非最佳方案,在教学资源库中资源编号是标记列且设为主键,会把资源编号设置成聚集索引。在实际应用中,并不会针对资源编号进行搜索,这就导致让资源编号作为聚集索引是不正确的选择。其次,资源编号都不相同,也不符合“很多数据不同值的列不应该设置聚合索引”的规则。下面以在1000万条数据量的资源信息表中查询近180天的资源信息速度为例(180天内的资源信息数据为30万条,数据通过程序生成,供测试使用),其分析如表1所示。表1索引设置与用时对比索引设置用时(毫秒)只在主键(资源编号)上设置聚集索引129652主键(资源编号)上设置聚集索引,日期上设置非聚集索引54128在发布日期(vDate)上建立聚集索引2446通过上述的数据分析,正确地建立聚集索引是十分有必要的。必须根据实际中的应用范围和数据本身的构成来确定聚集索引,而非固定使用默认的主键作为聚集索引。
优化SQL语句提高搜索性能
数据库管理系统本身具备了一定的查询分析优化能力。在MSSQL中的“查询分析优化器”,会检测查询的各个组成部分,并判断要求扫描的组成部分是不是有用,如果某个组成部分能够作为一个扫描参数,则称该组成部分为可优化,并使用索引对所需数据进行快速获取。如果某个表达式不能满足扫描参数的条件,就不能控制扫描范围,“索引”对不符合扫描参数条件的表达式是起到作用的。因此,在SQL查询语句的编写过程,要注意where子句的优化,让“索引”的作用得以充分发挥,最大限度地提高搜索性能。在搜索过程对信息字段的获取要遵循“需要多少,提取多少”的准则[3],不要采用“select*”。字段提取的多少对速度的影响如表2所示。自定义分页提高搜索性能在数据的查询过程中,若一次性将查询结果读出,当数据量较大时,势必需要消耗较多的读取时间,影响搜索结果的最终呈现速度。因此,在项目的实际开发中,可以应用自定义分页的形式提高搜索的`性能,若将实现自定义分页的过程使用存储过程的方式来实现,充分利用存储过程的优点,搜索性能将会得到更进一步的提高。自定义分页每次查询只从查询结果中读出当前页所需的数据,以资源搜索结果为2000条数据,系统每页呈现20条数据为例,普通分页与自定义分页相比,如图1—2所示。通过图1—2可以看出,采用自定义分页,仅从数据表中读出当前页的20条,数据控件也不需要进行控件内分页,其性能在数据读取和数据呈现上都有良好的提升。
2搜索实用性增强策略研究
纯粹模糊查询实现搜索的不足分析
纯粹模糊查询实现搜索指在搜索的过程中,仅将用户输入的关键字在数据的查询过程中,用数据库本身提供的模糊查询功能,与数据库表中的相关字段值进行匹配,并将匹配正确的值提取至搜索结果。其操作简单,但存在以下2点不足:(1)相关词无法匹配。相关词无法匹配造成搜索结果的部分性,是纯粹模糊查询的最大不足之处。(2)容错性低。由于未对输入的搜索关键词进行分析,一旦关键词中包含无用词或错别词时,将导致搜索结果零数据返回。通过上述分析,要解决相关词无法匹配和容错性低的两大不足,需要对搜索实用性增强进行研究。
增强相关词匹配
相关词的界定很难由程序自动判断,因为相关词有客观构成,也有主观构成。如:电脑与计算机、computer为客观相关词,而电脑与微软、冯诺依曼则为主观相关词。客观相关词为事实存在,为大多人所共知,而主观相关词需要在特定的条件下成立,人们通过“电脑”可以联系到软件巨头“微软公司”或计算机科学家“冯诺依曼”,需要一定的知识延展性,甚至“电脑”可以延伸到“计算器”,不同的用户有不同的认识。因此,主观相关词具备一定的不确定性与抽象的特点。增强相关词匹配可通过增加相关词字段或建立相关词库的方法来实现。相关词的匹配涉及匹配的深度和广度,越全面、精准则其投入成本越高。增加相关词字段。指通过在数据表中增加“相关词”字段,当用户在添加信息时,输入与此信息的相关词。相关词的界定及输入由信息编辑者进行操作,采用增加相关词字段的方式来提高相关词匹配,其实现方式简单,操作过程也容易,但相关词的界定由编辑者确定,相关词的个人主观性较强。建立相关词库。指通过建立相关词库表,当用户输入搜索关键词时,系统自动在相关词库表中搜索其相关词,一并归入关键词中进行处理,对搜索的实用性有很大的提高。当用户输入搜索关键词时,系统将自动遍历搜关键词的相关词,达到相关词匹配的目的。建立相关词库的方式,其相关词并非由编辑者个人界定,而且相关词可以灵活调整,不断补充。因此,建立相关词库的方式更加全面、客观,但构建一个完善的相关词库需要较大的投入。增加相关词字段与建立相关词库两者各有优缺点,但两者并非对立。在一个系统中,可以同时采用这2种方式或者其中之一以增强搜索相关词匹配,提高搜索实用性。具体实施方案还需要考虑到实际需求和投入成本预算。
增强搜索容错性
在搜索的过程中,用户对搜索关键词的输入具备不确定和冗长等特点。不确定主要指关键词的选词不确定和关键词的是否正确不确定,而冗长指用户输入的搜索关键词包含多余的信息。如果系统的搜索过程未对用户输入的搜索关键词进行分析和处理,那么,其搜索结果将有可能得不到用户所需要的数据。从搜索易用性与实用性的角度出发,搜索功能必须具备一定的容错性。要增强搜索的容错性,就需要解决搜索关键词的不确定与冗长的特点。将搜索关键词按一定的规则进行拆分,简称分词。将长词转化为短词,并舍去重复的部分,可以提高搜索相关词的匹配,降低长词中错词、别词的构成,从而提高搜索的容错性。分词搜索可以在一定程度上解决搜索的容错要求,提升搜索的功能与精确度。分词技术主要分为3种:(1)字符串匹配的分词方法。字符串匹配的分词又分为4种,分别是:正向最大匹配法、反向最大匹配法、最短路径匹配法、双向最大匹配法。(2)词义分词法。词义分词法根据机器语音进行分词判断,通过对句法、语义的分析,使用句法信息、语义信息进行分词。但词义分词法目前还不成熟,尚处于测试阶段。(3)统计分词法。统计分词法依据词组的统计,针对相邻的字出现的次数多少,认定词的重要程度,作为关键词的分词分隔符。盘古分词作为一种分词组件,大大降低了系统进行分词搜索的投入成本,避免重复造车的现象,非常方便应用在基于.NET技术进行开发的系统中。
3结语
通过对索引的合理利用、SQL语句的优化和自定义分页的使用,对搜索性能有良好的提升,融入盘古分词的强大功能,结合相关词匹配技术,能够提高搜索的实用性。本文从搜索性能与实用性两方面研究了搜索增强技术,并将其应用于学院的教学资源库建设中,虽然取得了一定的成效,但还需要继续努力。
[参考文献]
[1]张玉峰,袁方,湛燕,等.基于索引结构的关系数据库关键词检索[J].河北大学学报(自然科学版),2015(1):95-101.
[2]魏威,马国峰.基于索引的关系数据库查询优化[J].洛阳大学学报,2007(2):83-86.
[3]徐新静.SQL优化技术及应用[J].天津冶金,2011(2):25-27.
广州文仔
ORACLE中SQL查询优化研究摘 要 数据库性能问题一直是决策者及技术人员共同关注的焦点,影响数据库性能的一个重要因素就是SQL查询语句的低效率。论文首先分析了导致SQL查询语句性能低下的四个常见原因以及SQL调优的一般步骤,然后分别针对如何降低I/O操作、在查询语句中如何避免对查询结果的高成本操作以及在多表连接时如何提高查询效率进行了分析。关键词 ORACLE;SQL;优化;连接1 引言随着网络应用不断发展,系统性能已越来越引起决策者的重视。影响系统性能的因素很多,低效的SQL语句就是其中一个不可忽视的重要原因。论文首先分析导致SQL性能低下的常见原因,然后分析SQL调优应遵循的一般步骤,最后从如何降低I/O、避免对查询结果的高成本操作和多表连接中如何提高SQL性能进行了研究。鉴于目前ORACLE在数据库市场上的主导地位,论文将只针对ORACLE进行讨论。2 影响SQL性能的原因影响SQL性能的因素很多,如初始化参数设置不合理、导入了不准确的系统及模式统计数据从而影响优化程序(CBO)的正确判断等,这些往往和DBA密切相关。纯粹从SQL语句出发,笔者认为影响SQL性能不外乎以下四个重要原因:(1)在大记录集上进行高成本操作,如使用了引起排序的谓词等。(2)过多的I/O操作(含物理I/O与逻辑I/O),最典型的就是未建立恰当的索引,导致对查询表进行全表扫描。(3)处理了太多的无用记录,如在多表连接时过滤条件位置不当导致中间结果集包含了太多的无用记录。(4)未充分利用数据库提供的功能,如查询的并行化处理等。第(4)个原因处理起来相对简单。论文将针对前三个原因论述如何提高SQL查询语句的性能。3 SQL优化的一般步骤SQL优化一般需经过发现问题、分析问题、提出解决措施、应用措施、测试性能几个步骤,如图1所示。“发现问题就是解决问题的一半”,因此在SQL调优过程中,定位问题SQL是非常重要的一步,一般可借助于ORACLE自带的性能优化工具如STATSPACK、TKPROF、AUTOTRACE等辅助用户进行,同时还应该重视动态性能视图如V$SQL、V$MYSTAT、V$SYSSTAT等的研究。图1 SQL优化的一般步骤4 SQL语句的优化 优化排序操作排序的成本十分高昂,当在查询语句中使用了引起结果集排序的谓词时,SQL性能必然受到影响。 排序过程分析当待排序数据集不是太大时,服务器在内存(排序区)完成排序操作,如果排序需要更多的内存空间,服务器将进行如下处理:(1) 将数据分成多个小的集合,对每一集合进行排序。(2) 服务器向磁盘申请临时空间,将排好序的中间结果写入临时段,再对另外的集合进行排序。(3) 在所有的集合均排好序后,服务器再将它们进行合并得到最终的结果,如果排序区尺寸太小,合并无法一次完成时,将分多次进行。从上述分析可知,排序是一种十分昂贵的操作,它消耗大量的CPU时间和内存,触发磁盘分页和交换操作,因此只要有可能,我们就应该在SQL语句中尽量避免排序操作。 SQL中引起排序的操作SQL查询语句中引起排序的操作大致有:ORDER BY 和GROUP BY 从句;DISTINCT修饰符;UNION、INTERSECT、MINUS集合操作符;多表连接时的排序合并连接(SORT MERGE JOIN)等。 如何避免排序1)建立恰当的索引对经常进行排序和连接操作的字段建立索引。在建立索引后,当服务器向这些字段发出排序请求时,将直接引用索引而不进行排序操作;当进行等值连接查询操作时,若建立连接的字段未建立索引,服务器进行的是排序合并连接(SORT MERGE JOIN),连接操作的过程如下:对进行连接的两个或多个表分别进行全扫描;对每一个表中的行集分别进行全排序;合并排序结果。如果建立连接的字段已建立索引,服务器进行嵌套循环连接(NESTED LOOP JOINS),该连接方式不需要任何排序,其过程如下:对驱动表进行全表扫描;对返回的每一行利用连接字段值实施索引惟一扫描;利用从索引扫描中返回的ROWID值在从表中定位记录;合并主、从表中的匹配记录。因此,建立索引可避免多数排序操作。2)用UNIION ALL替换UNIONUNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。大部分应用中是不会产生重复记录的,最常见的是过程表与历史表UNION 。因此,采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两个结果合并后就返回。 优化I/O过多的I/O操作会占用CPU时间、消耗大量内存和占用过多的栓锁,因此有必要对SQL的I/O进行优化。优化I/O的最有效方式就是用索引扫描代替全表扫描。 应用基于函数的索引基于函数的索引(FUNCTION BASED INDEX,简记为FBI)提供了索引计算列并在查询中使用这些索引的能力。FBI的实质是对查询所需中间结果进行预处理。如果一个FBI与查询语句中的内嵌函数完全匹配,CBO在生成查询计划时,将自动启用索引范围扫描(INDEX RANGE SCAN)替换全表扫描(FULL TABLE SCAN)。考察下面的代码段并用AUTOTRACE观察创建FBI前后执行计划的变化。select * from emp where upper(ename)=’SCOTT’创建FBI前,很明显是全表扫描。Execution Plan……1 0 TABLE ACCESS (FULL) OF 'EMPLOYEES' (Cost=2 Card=1 Bytes=22)idle>CREATE INDEX EMP_UPPER_FIRST_NAME ON EMPLOYEES(UPPER(FIRST_NAME));索引已创建。再次运行相同查询,Execution Plan……1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMPLOYEES' (Cost=1 Card=1 Bytes=22)2 1 INDEX (RANGE SCAN) OF 'EMP_UPPER_FIRST_NAME' (NON-UNIQUE) (Cost=1 Card=1)这一简单的例子充分说明了FBI在SQL查询优化中的作用。FBI所用的函数可以是用户自己创建的函数,该函数越复杂,基于该函数创建FBI对SQL查询性能的优化作用越明显。 应用物化视图和查询重写物化视图是一个预计算结果集,其中通常包含聚集与多表连接等复杂操作。数据库自动维护物化视图,且随用户的要求进行刷新。查询重写机制就是用数据库中的替代对象(如物化视图)将用户提交的查询重写为完全不同但功能等价的查询。查询重写对用户透明,用户完全按常规编写访问数据库的查询语句,优化程序(CBO)自动决定是否对用户提交的查询进行重写。查询重写是提高查询性能的一种非常有效的方法,尤其是在数据仓库环境中针对汇总、多表连接以及其它高成本的操作方面。下面以一个非常简单的例子来演示物化视图和查询重写在优化SQL查询性能方面的作用。select ,,count(*)from emp,deptwhere by ,查询计划及主要统计数据如下:执行计划:-----------------------------------------……2 1 HASH JOIN (Cost=5 Card=14 Bytes=224)3 2 TABLE ACCESS (FULL) OF 'DEPT' (Cost=2 Card=4 Bytes=52)4 2 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=14 Bytes=42)主要统计数据:-----------------------------------------305 recursive calls46 consistent gets创建物化视图EMP_DEPT:create materialized view emp_dept build immediaterefresh on demandenable query rewriteasselect ,,count(*)from emp,deptwhere by ,再次执行查询,执行计划及主要统计数据如下:执行计划:-------------------------------------……1 0 TABLE ACCESS (FULL) OF 'EMP_DEPT' (Cost=2 Card=327 Bytes=11445)主要统计数据:------------------------------------79 recursive calls28 consistent gets可见,在建立物化视图之前,首先执行两个表的全表扫描,然后进行HASH连接,再进行分组排序和选择操作;而建立物化视图后,CBO自动将上述复杂操作转换为对物化视图EMP_DEPT的全扫描,相关的统计数据也有了很大的改善,递归调用(RECURSIVE CALLS)由305降到79,逻辑I/O(CONSISTENT GETS)由46降为28。 将频繁访问的小表读入CACHE逻辑I/O总是快于物理I/O。如果数据库中存在被应用程序频繁访问的小表,可将这些表强行读入KEEP池,从而避免物理I/O的发生。 多表连接优化最能体现查询复杂性的就是多表连接,多表连接操作往往要耗费大量的CPU时间和内存,因此多表连接查询性能优化往往是SQL优化的重点与难点。 消除外部连接通过消除外部连接,不仅使得到的查询更易于读取,而且性能也经常可以得到改善。一般的思路是,有以下形式的查询:SELECT …, SOME_TABLE,OUTER_JOINED_TO_TABLEWHERE …=OUTER_JOINED_TO_TABLE(+)可转换为如下形式的查询:SELECT …,(SELECT COLUMN FROM OUTER_ JOINED_TO_TABLE WHERE …)FROM SOME_TABLE; 谓词前推,优化中间结果多表连接的性能低下多数是因为连接操作与过滤操作的次序不合理,大多数用户在编写多表连接查询时,总是先进行连接操作再应用过滤条件,这导致服务器做了太多的无用功。针对这类问题,其优化思路就是尽可能将过滤谓词前推,使不符合条件的记录提前被筛选掉,只对符合条件的少数记录进行连接处理,这样可成倍的提高SQL查询效能。标准连接查询如下:Select ,sum(),sum(),sum()From product a,tele_sale b,online_sale c,store_sale dWhere and And >sysdate-90Group by ;启用内嵌视图,且将条件>sysdate-90前移,优化后代码如下:Select ,,, From product a,(select sum(sal_quant) tele_sale_sum from product,tele_saleWhere >sysdate-90 and =) b,(select sum(sal_quant) online_sale_sumfrom product,tele_saleWhere >sysdate-90 and =) c,(select sum(sal_quant) store_sale_sumfrom product,store_saleWhere >sysdate-90 and =) d,Where and ;5 结束语SQL语言在数据库应用中占有非常重要的地位,其性能的优劣直接影响着整个信息系统的可用性。论文从影响SQL性能的最主要的三个方面入手,分析了如何优化SQL查询的I/O、避免高成本的排序操作和优化多表连接。需要强调的一点是,理解SQL语句所解决的问题比SQL调优本身更重要,因此SQL调优需要系统分析人员、开发人员和数据库管理员密切协作。参考文献[1]Thomas Oracle by Design:Design and Build High-performance Oracle Application[M],The McGral- Hill Companies,Inc,2003[2]Kevin Loney,George Koch,Oracle 9i:The Complete Reference[M],The McGral-Hill Companies,Inc,2002[3] Oracle9i SQL Reference release 2()[OL/M],. [4] Oracle9i Data Warehousing Guide release 2() [OL/M],. [5]Alexey Danchenkov,Donald Burleson,Oracle Tuning:The Definitive Reference[OL/M],Rampant Techpress,2006.[6] Oracle9i Database Concepts release 2() [OL/M],. [7] Oracle9i supplied plsql packages and types reference release 2() [OL/M],. http:// technology/
宇宙无敌的猫
As to huge database of the data amount, the inquiry velocity difference between inferior SQL sentence and high-quality SQL sentence can be in order to reach dozens of very to hundreds of times. In practical application, one inquire system to just realize his function briefly, but the speech as to some inquiry systems needing to respond in real time, it causes performance to be low if because there is not high-quality SQL sentence, it is pointless even can realize its function. SQL inquires the essence optimized is base on the premise that the result is correct. The optimizing device improves the efficiency of finding out according to the index defined, use SELECT sentence optimized, try hard to avoid the emergence that the whole form scans, improve the inquiry velocity, improve working efficiency. This text proceeds from establishment of the index and optimization of SELECT sentence. Among them the establishment of the index is to inquire about the prerequisite optimized, this text has put forward some concrete suggestions on the establishment of the index. And the optimization of bad SQL sentence is the focal point herein. So to the optimization of SQL sentence, it is used for explaining how to optimize and compare with the result after optimizing that this text puts out a large number of examples.
英语和汉语是两种高度发展的语言,对比其异同,对于英语翻译教学是很重要的。下文是我为大家整理的关于英汉翻译的论文的范文,欢迎大家阅读参考! 英汉语言的异同及其翻译
高效农业对农村经济的影响论文 自古以来,农业就在我国国民经济中占据着基础地位,在经济发展的推动下,国家对农村经济的发展也愈加重视。高效农业极大地影响着我国农村经
我觉得有必要把原始数据整理后以附件形式附到论文后面,因为是附件形式,对理解能力强的人,他不需要去阅读后面的附件,但对于水平相对差一些、想进一步了解过程的人则有帮
网络营销论文2500字 无论是在学校还是在社会中,大家都经常接触到论文吧,借助论文可以有效提高我们的写作水平。你所见过的论文是什么样的呢?以下是我精心整理的网络
首先伱要定好自己要发的刊物?其次你要定好发什么类型的期刊?最后准表好了一切准备待续,接着拿着伱的鸡手(手鸡)打开网页输入壹品 后接输入品