索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
数据库索引好比是一本书前面的目录,能加快数据库的查询速度。例如这样一个查询:select * from table1 where id=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),直接在索引里面找44(也就是在ID这一列找),就可以得知这一行的位置,也就是找到了这一行。可见,索引是用来定位的。
索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
增加索引也有许多不利的方面。第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。
在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用
C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。
关系数据库管理系统实质是面向集合的,在MS SQL SERVER 中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中。因此我们必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句select
返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。
分享到:
相关推荐
30个提高数据库查询效率方法总结笔记 30个提高数据库查询效率方法总结笔记
提高数据库查询效率的实用方法提高数据库查询效率的实用方法提高数据库查询效率的实用方法提高数据库查询效率的实用方法提高数据库查询效率的实用方法提高数据库查询效率的实用方法提高数据库查询效率的实用方法
详细讲解提高数据库查询效率的实用方法,用开发人员的代码更快。
怎样提高数据库查询效率 怎样提高数据库查询效率 怎样提高数据库查询效率
提高数据库查询效率的一些小建议和方法,希望能够帮助到你
sql查询优化 提高MySQL数据库查询效率的几个技巧
用于网络开发进行数据库调优 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而...
数据库查询效率,能提高数据库查询效率,很多,都是收藏啊
怎样提高数据库查询效率.doc
如何提高数据库访问效率,一些很实用的信息资料。
提高数据库SQL查询效率的方法.pdf
利用XML技术提高数据库操作效率的实现方法-=-大学生优秀毕业论文!!
下面是一个采用联接查询的SQL语句, select * from employss where first_name||''||last_name ='Beill Cliton';
如何提高oracle_数据库查询效率
提高Java数据库访问效率的策略研究.pdf
数据写入数据库效率比较(好的方法效率提高20倍,文档) 长连接 短连接 DataTable批处理 WriteServer批处理
此文档是Oracle提高数据库效率的总结,能够帮助你在使用Oracle编程时带来的效率问题!
用优化SQL语句提高数据库ETL效率.pdf
最后在合并网络的基础上,设计一种合并网络执行算法,在很大程度上减少了传统方法所需执行的大量复杂数据库查询操作,进一步提高了查询效率。多组基于真实数据集的实验结果表明,CCNE可以在保证查询结果无缺失的情况...
数据库 使用索引提高查询效率