第一篇:Oracle索引用法大总结,好处与坏处,优点与缺
Oracle索引用法大总结,好处与坏处,优点与缺点二
索引使用的好处与坏处(Oracle)
分类: OracleDB
?创建索引的好处
–帮助用户提高查询速度
–利用索引的唯一性来控制记录的唯一性
–可以加速表与表之间的连接
–降低查询中分组和排序的时间
?创建索引的坏处
–存储索引占用磁盘空间
–执行数据修改操作(INSERT、UPDATE、DELETE)产生索引维护
索引是提高数据查询最有效的方法,也是最难全面掌握的技术,因为正确的索引可能使效率提高10000倍,而无效的索引可能是浪费了数据库空间,甚至大大降低查询性能。
索引的管理成本
1、存储索引的磁盘空间
2、执行数据修改操作(INSERT、UPDATE、DELETE)产生的索引维护
3、在数据处理时回需额外的回退空间。
实际数据修改测试:
一个表有字段A、B、C,同时进行插入10000行记录测试
在没有建索引时平均完成时间是2.9秒
在对A字段建索引后平均完成时间是6.7秒
在对A字段和B字段建索引后平均完成时间是10.3秒
在对A字段、B字段和C字段都建索引后平均完成时间是11.7秒
从以上测试结果可以明显看出索引对数据修改产生的影响
索引按存储方法分类
B*树索引
B*树索引是最常用的索引,其存储结构类似书的索引结构,有分支和叶两种类型的存储数据块,分支块相当于书的大目录,叶块相当于索引到的具体的书页。一般索引及唯一约束索引都使用B*树索引。
位图索引
位图索引储存主要用来节省空间,减少ORACLE对数据块的访问,它采用位图偏移方式来与表的行ID号对应,采用位图索引一般是重复值太多的表字段。位图索引在实际密集型OLTP(数据事务处理)中用得比较少,因为OLTP会对表进行大量的删除、修改、新建操作,ORACLE每次进行操作都会对要操作的数据块加锁,所以多人操作很容易产生数据块锁等待甚至死锁现象。在OLAP(数据分析处理)中应用位图有优势,因为OLAP中大部分是对数据库的查询操作,而且一般采用数据仓库技术,所以大量数据采用位图索引节省空间比较明显。
索引按功能分类
唯一索引
唯一索引有两个作用,一个是数据约束,一个是数据索引,其中数据约束主要用来保证数据的完整性,唯一索引产生的索引记录中每一条记录都对应一个唯一的ROWID。
主关键字索引
主关键字索引产生的索引同唯一索引,只不过它是在数据库建立主关键字时系统自动建立的。
一般索引
一般索引不产生数据约束作用,其功能主要是对字段建立索引表,以提高数据查询速度。
索引按索引对象分类
单列索引(表单个字段的索引)
多列索引(表多个字段的索引)
函数索引(对字段进行函数运算的索引)
建立函数索引的方法:
create index 收费日期索引 on GC_DFSS(trunc(sk_rq))
create index 完全客户编号索引 on yhzl(qc_bh||kh_bh)
在对函数进行了索引后,如果当前会话要引用应设置当前会话的query_rewrite_enabled为TRUE。
alter session set query_rewrite_enabled=true
注:如果对用户函数进行索引的话,那用户函数应加上 deterministic参数,意思是函数在输入值固定的情况下返回值也固定。例:
create or replace function trunc_add(input_date date)return deterministic
as
begin
return trunc(input_date+1);
end trunc_add;
应用索引的扫描分类
INDEX UNIQUE SCAN(按索引唯一值扫描)
select * from zl_yhjbqk where hbs_bh='5420016000'
date
INDEX RANGE SCAN(按索引值范围扫描)
select * from zl_yhjbqk where hbs_bh>'5420016000'
select * from zl_yhjbqk where qc_bh>'7001'
INDEX FAST FULL SCAN(按索引值快速全部扫描)
select hbs_bh from zl_yhjbqk order by hbs_bh
select count(*)from zl_yhjbqk
select qc_bh from zl_yhjbqk group by qc_bh
什么情况下应该建立索引
表的主关键字
自动建立唯一索引
如zl_yhjbqk(用户基本情况)中的hbs_bh(户标识编号)
表的字段唯一约束
ORACLE利用索引来保证数据的完整性
如lc_hj(流程环节)中的lc_bh+hj_sx(流程编号+环节顺序)
直接条件查询的字段
在SQL中用于条件约束的字段
如zl_yhjbqk(用户基本情况)中的qc_bh(区册编号)
select * from zl_yhjbqk where qc_bh=’7001’
查询中与其它表关联的字段
字段常常建立了外键关系
如zl_ydcf(用电成份)中的jldb_bh(计量点表编号)
select * from zl_ydcf a,zl_yhdb b where a.jldb_bh=b.jldb_bh and b.jldb_bh=’540100214511’
查询中排序的字段
排序的字段如果通过索引去访问那将大大提高排序速度
select * from zl_yhjbqk order by qc_bh(建立qc_bh索引)
select * from zl_yhjbqk where qc_bh='7001' order by cb_sx(建立qc_bh+cb_sx索引,注:只是一个索引,其中包括qc_bh和cb_sx字段)
查询中统计或分组统计的字段
select max(hbs_bh)from zl_yhjbqk
select qc_bh,count(*)from zl_yhjbqk group by qc_bh
什么情况下应不建或少建索引
表记录太少
如果一个表只有5条记录,采用索引去访问记录的话,那首先需访问索引表,再通过索引表访问数据
QC_BH返回了结果,这就是通过索引直接返回结果的方法。
如何重建索引
alter index 表电量结果表主键 rebuild
如何快速新建大数据量表的索引
如果一个表的记录达到100万以上的话,要对其中一个字段建索引可能要花很长的时间,甚至导致服务器数据库死机,因为在建索引的时候ORACLE要将索引字段所有的内容取出并进行全面排序,数据量大的话可能导致服务器排序内存不足而引用磁盘交换空间进行,这将严重影响服务器数据库的工作。解决方法是增大数据库启动初始化中的排序内存参数,如果要进行大量的索引修改可以设置10M以上的排序内存(ORACLE缺省大小为64K),在索引建立完成后应将参数修改回来,因为在实际OLTP数据库应用中一般不会用到这么大的排序内存。
*******************************************************
一、为什么要创建索引呢(优点)?
这是因为,创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
二、建立方向索引的不利因素(缺点)
也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。
第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
三、创建方向索引的准则 索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引。
第一,在经常需要搜索的列上,可以加快搜索的速度;
第二,在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; 第三,在经常用在连
接的列上,这些列主要是一些外键,可以加快连接的速度;
第四,在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
第五,在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
第六,在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点:
第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。
第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。
第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。
四、创建索引的方法
创建索引有多种方法,这些方法包括直接创建索引的方法和间接创建索引的方法。
第一,直接创建索引,例如使用CREATE INDEX语句或者使用创建索引向导。第二,间接创建索引,例如在表中定义主键约束或者唯一性键约束时,同时也创建了索引。
虽然,这两种方法都可以创建索引,但是,它们创建索引的具体内容是有区别的。
使用CREATE INDEX语句或者使用创建索引向导来创建索引,这是最基本的索引创建方式,并且这种方法最具有柔性,可以定制创建出符合自己需要的索引。在使用这种方式创建索引时,可以使用许多选项,例如指定数据页的充满度、进行排序、整理统计信息等,这样可以优化索引。使用这种方法,可以指定索引的类型、唯一性和复合性,也就是说,既可以创建聚簇索引,也可以创建非聚簇索引,既可以在一个列上创建索引,也可以在两个或者两个以上的列上创建索引。
通过定义主键约束或者唯一性键约束,也可以间接创建索引。主键
约束是一种保持数据完整性的逻辑,它限制表中的记录有相同的主键记录。在创建主键约束时,系统自动创建了一个唯一性的聚簇索引。虽然,在逻辑上,主键约束是一种重要的结构,但是,在物理结构上,与主键约束相对应的结构是唯一性的聚簇索引。换句话说,在物理实现上,不存在主键约束,而只存在唯一性的聚簇索引。同样,在创建唯一性键约束时,也同时创建了索引,这种索引则是唯一性的非聚簇索引。因此,当使用约束创建索引时,索引的类型和特征基本上都已经确定了,由用户定制的余地比较小。
当在表上定义主键或者唯一性键约束时,如果表中已经有了使用CREATE INDEX语句创建的标准索引时,那么主键约束或者唯一性键约束创建的索引覆盖以前创建的标准索引。也就是说,主键约束或者唯一性键约束创建的索引的优先级高于使用CREATE INDEX语句创建的索引。
五、索引的特征
索引有两个特征,即唯一性索引和复合索引。
唯一性索引保证在索引列中的全部数据是唯一的,不会包含冗余数据。如果表中已经有一个主键约束或者唯一性键约束,那么当创建表或者修改表时,SQL Server自动创建一个唯一性索引。然而,如果必须保证唯一性,那么应该创建主键约束或者唯一性键约束,而不是创建一个唯一性索引。当创建唯一性索引时,应该认真考虑这些规则:当在表中创建主键约束或者唯一性键约束时,SQL Server自动创建一个唯一性索引;如果表中已经包含有数据,那么当创建索引时,SQL Server检查表中已有数据的冗余性;每当使用插入语句插入数据或者使用修改语句修改数据时,SQL Server检查数据的冗余性:如果有冗余值,那么SQL Server取消该语句的执行,并且返回一个错误消息;确保表中的每一行数据都有一个唯一值,这样可以确保每一个实体都可以唯一确认;只能在可以保证实体完整性的列上创建唯一性索引,例如,不能在人事表中的姓名列上创建唯一性索引,因为人们可以有相同的姓名。
复合索引就是一个索引创建在两个列或者多个列上。在搜索时,当两个或者多个列作为一个关键值时,最好在这些列上创建复合索引。当创建复合索引时,应该考虑这些规则:最多可以把16个列合并成一个单独的复合索引,构成复合索引的列的总长度不能超过900字节,也就是说复合列的长度不能太长;在复合索引中,所有的列必须来自同一个表中,不能跨表建立复合列;在复合索引中,列的排列顺序是非常重要的,因此要认真排列列的顺序,原则上,应该首先定义最唯一的列,例如在(COL1,COL2)上的索引与在(COL2,COL1)上的索引
是不相同的,因为两个索引的列的顺序不同;为了使查询优化器使用复合索引,查询语句中的WHERE子句必须参考复合索引中第一个列;当表中有多个关键列时,复合索引是非常有用的;使用复合索引可以提高查询性能,减少在一个表中所创建的索引数量。
六、索引的类型
根据索引的顺序与数据表的物理顺序是否相同,可以把索引分成两种类型。一种是数据表的物理顺序与索引顺序相同的聚簇索引,另一种是数据表的物理顺序与索引顺序不相同的非聚簇索引。
七、聚簇索引的体系结构
索引的结构类似于树状结构,树的顶部称为叶级,树的其它部分称为非叶级,树的根部在非叶级中。同样,在聚簇索引中,聚簇索引的叶级和非叶级构成了一个树状结构,索引的最低级是叶级。在聚簇索引中,表中的数据所在的数据页是叶级,在叶级之上的索引页是非叶级,索引数据所在的索引页是非叶级。在聚簇索引中,数据值的顺序总是按照升序排列。应该在表中经常搜索的列或者按照顺序访问的列上创建聚簇索引。当创建聚簇索引时,应该考虑这些因素:每一个表只能有一个聚簇索引,因为表中数据的物理顺序只能有一个;表中行的物理顺序和索引中行的物理顺序是相同的,在创建任何非聚簇索引之前创建聚簇索引,这是因为聚簇索引改变了表中行的物理顺序,数据行按照一定的顺序排列,并且自动维护这个顺序;关键值的唯一性要么使用UNIQUE关键字明确维护,要么由一个内部的唯一标识符明确维护,这些唯一性标识符是系统自己使用的,用户不能访问;聚簇索引的平均大小大约是数据表的百分之五,但是,实际的聚簇索引的大小常常根据索引列的大小变化而变化;在索引的创建过程中,SQL Server临时使用当前数据库的磁盘空间,当创建聚簇索引时,需要1.2倍的表空间的大小,因此,一定要保证有足够的空间来创建聚簇索引。当系统访问表中的数据时,首先确定在相应的列上是否存在有索引和该索引是否对要检索的数据有意义。如果索引存在并且该索引非常有意义,那么系统使用该索引访问表中的记录。系统从索引开始浏览到数据,索引浏览则从树状索引的根部开始。从根部开始,搜索值与每一个关键值相比较,确定搜索值是否大于或者等于关键值。这一步重复进行,直到碰上一个比搜索值大的关键值,或者该搜索值大于或者等于索引页上所有的关键值为止。
八、非聚簇索引的体系结构
非聚簇索引的结构也是树状结构,与聚簇索引的结构非常类似,但是也有明显的不同。
在非聚簇索引中,叶级仅包含关键值,而没有包含数据行。
非聚簇索引表示行的逻辑顺序。非聚簇索引有两种体系结构:一种体系结构是在没有聚簇索引的表上创建非聚簇索引,另一种体系结构是在有聚簇索引的表上创建非聚簇索引。
如果一个数据表中没有聚簇索引,那么这个数据表也称为数据堆。当非聚簇索引在数据堆的顶部创建时,系统使用索引页中的行标识符指向数据页中的记录。行标识符存储了数据所在位置的信息。数据堆是通过使用索引分配图(IAM)页来维护的。IAM页包含了数据堆所在簇的存储信息。在系统表sysindexes中,有一个指针指向了与数据堆相关的第一个IAM页。系统使用IAM页在数据堆中浏览和寻找可以插入新的记录行的空间。这些数据页和在这些数据页中的记录没有任何的顺序并且也没有链接在一起。在这些数据页之间的唯一的连接是IAM中记录的顺序。当在数据堆上创建了非聚簇索引时,叶级中包含了指向数据页的行标识符。行标识符指定记录行的逻辑顺序,由文件ID、页号和行ID组成。这些行的标识符维持唯一性。非聚簇索引的叶级页的顺序不同于表中数据的物理顺序。这些关键值在叶级中以升序维持。
当非聚簇索引创建在有聚簇索引的表上的时候,系统使用索引页中的指向聚簇索引的聚簇键。聚簇键存储了数据的位置信息。如果某一个表有聚簇索引,那么非聚簇索引的叶级包含了映射到聚簇键的聚簇键值,而不是映射到物理的行标识符。当系统访问有非聚簇索引的表中数据时,并且这种非聚簇索引创建在聚簇索引上,那么它首先从非聚簇索引来找到指向聚簇索引的指针,然后通过使用聚簇索引来找到数据。
当需要以多种方式检索数据时,非聚簇索引是非常有用的。当创建非聚簇索引时,要考虑这些情况:在缺省情况下,所创建的索引是非聚簇索引;在每一个表上面,可以创建不多于249个非聚簇索引,而聚簇索引最多只能有一个。
系统如何访问表中的数据 一般地,系统访问数据库中的数据,可以使用两种方法:表扫描和索引查找。第一种方法是表扫描,就是指系统将指针放置在该表的表头数据所在的数据页上,然后按照数据页的排列顺序,一页一页地从前向后扫描该表数据所占有的全部数据页,直至扫描完表中的全部记录。在扫描时,如果找到符合查询条件的记录,那么就将这条记录挑选出来。最后,将全部挑选出来符合查询语句条件的记录显示出来。第二种方法是使用索引查找。索引是一种树状结构,其中存储了关键字和指向包含关键字所在记录的数据页的指针。当使用索引查找时,系统沿着索引的树状结构,根据索引中关键字和指针,找到符合查
询条件的的记录。最后,将全部查找到的符合查询语句条件的记录显示出来。
在SQL Server中,当访问数据库中的数据时,由SQL Server确定该表中是否有索引存在。如果没有索引,那么SQL Server使用表扫描的方法访问数据库中的数据。查询处理器根据分布的统计信息生成该查询语句的优化执行规划,以提高访问数据的效率为目标,确定是使用表扫描还是使用索引。
九、索引的选项
在创建索引时,可以指定一些选项,通过使用这些选项,可以优化索引的性能。这些选项包括FILLFACTOR选项、PAD_INDEX选项和SORTED_DATA_REORG选项。使用FILLFACTOR选项,可以优化插入语句和修改语句的性能。当某个索引页变满时,SQL Server必须花费时间分解该页,以便为新的记录行腾出空间。使用FILLFACTOR选项,就是在叶级索引页上分配一定百分比的自由空间,以便减少页的分解时间。当在有数据的表中创建索引时,可以使用FILLFACTOR选项指定每一个叶级索引节点的填充的百分比。缺省值是0,该数值等价于100。在创建索引的时候,内部索引节点总是留有了一定的空间,这个空间足够容纳一个或者两个表中的记录。在没有数据的表中,当创建索引的时候,不要使用该选项,因为这时该选项是没有实际意义的。另外,该选项的数值在创建时指定以后,不能动态地得到维护,因此,只应该在有数据的表中创建索引时才使用。
PAD_INDEX选项将FILLFACTOR选项的数值同样也用于内部的索引节点,使内部的索引节点的填充度与叶级索引的节点中的填充度相同。如果没有指定FILLFACTOR选项,那么单独指定PAD_INDEX选项是没有实际意义的,这是因为PAD_INDEX选项的取值是由FILLFACTOR选项的取值确定的。当创建聚簇索引时,SORTED_DATA_REORG选项清除排序,因此可以减少建立聚簇索引所需要的时间。当在一个已经变成碎块的表上创建或者重建聚簇索引时,使用SORTED_DATA_REORG选项可以压缩数据页。当重新需要在索引上应用填充度时,也使用该选项。当使用SORTED_DATA_REORG选项时,应该考虑这些因素:SQL Server确认每一个关键值是否比前一个关键值高,如果都不高,那么不能创建索引;SQL Server要求1.2倍的表空间来物理地重新组织数据;使用SORTED_DATA_REORG选项,通过清除排序进程而加快索引创建进程;从表中物理地拷贝数据;当某一个行被删除时,其所占的空间可以重新利用;创建全部非聚簇索引;如果希望把叶级页填充到一定的百分比,可以同时使用FILLFACTOR选项和SORTED_DATA_REORG选项。
十、索引的维护
为了维护系统性能,索引在创建之后,由于频繁地对数据进行增加、删除、修改等操作使得索引页发
生碎块,因此,必须对索引进行维护。
使用DBCC SHOWCONTIG语句,可以显示表的数据和索引的碎块信息。当执行DBCC SHOWCONTIG语句时,SQL Server浏览叶级上的整个索引页,来确定表或者指定的索引是否严重碎块。DBCC SHOWCONTIG语句还能确定数据页和索引页是否已经满了。当对表进行大量的修改或者增加大量的数据之后,或者表的查询非常慢时,应该在这些表上执行DBCC SHOWCONTIG语句。当执行DBCC SHOWCONTIG语句时,应该考虑这些因素:当执行DBCC SHOWCONTIG语句时,SQL Server要求指定表的ID号或者索引的ID号,表的ID号或者索引的ID号可以从系统表sysindexes中得到;应该确定多长时间使用一次DBCC SHOWCONTIG语句,这个时间长度要根据表的活动情况来定,每天、每周或者每月都可以。
使用DBCC DBREINDEX语句重建表的一个或者多个索引。当希望重建索引和当表上有主键约束或者唯一性键约束时,执行DBCC DBREINDEX语句。除此之外,执行DBCC DBREINDEX语句还可以重新组织叶级索引页的存储空间、删除碎块和重新计算索引统计。当使用执行DBCC DBREINDEX语句时,应该考虑这些因素:根据指定的填充度,系统重新填充每一个叶级页;使用DBCC DBREINDEX语句重建主键约束或者唯一性键约束的索引;使用SORTED_DATA_REORG选项可以更快地创建聚簇索引,如果没有排列关键值,那么不能使用DBCC DBREINDEX语句;DBCC DBREINDEX语句不支持系统表。另外,还可以使用数据库维护规划向导自动地进行重建索引的进程。统计信息是存储在SQL Server中的列数据的样本。这些数据一般地用于索引列,但是还可以为非索引列创建统计。SQL Server维护某一个索引关键值的分布统计信息,并且使用这些统计信息来确定在查询进程中哪一个索引是有用的。查询的优化依赖于这些统计信息的分布准确度。查询优化器使用这些数据样本来决定是使用表扫描还是使用索引。当表中数据发生变化时,SQL Server周期性地自动修改统计信息。索引统计被自动地修改,索引中的关键值显著变化。统计信息修改的频率由索引中的数据量和数据改变量确定。例如,如果表中有10000行数据,1000行数据修改了,那么统计信息可能需要修改。然而,如果只有50行记录修改了,那么仍然保持当前的统计信息。除了系统自动修改之外,用户还可以通过执行UPDATE STATISTICS语句或者sp_updatestats系统存储过程来手工修改统计信息。使用UPDATE STATISTICS语句既可以修改表中的全部索引,也可以修改指定的索引。
使用SHOWPLAN和STATISTICS IO语句可以分析索引和查询性能。使用这些语句可以更好地调整查询和索引。SHOWPLAN语句显示在连接表中使用的查询优化器的每一步以及表
明使用哪一个索引访问数据。使用SHOWPLAN语句可以查看指定查询的查询规划。当使用SHOWPLAN语句时,应该考虑这些因素。SET SHOWPLAN_ALL语句返回的输出结果比SET SHOWPLAN_TEXT语句返回的输出结果详细。然而,应用程序必须能够处理SET SHOWPLAN_ALL语句返回的输出结果。SHOWPLAN语句生成的信息只能针对一个会话。如果重新连接SQL Server,那么必须重新执行SHOWPLAN语句。STATISTICS IO语句表明输入输出的数量,这些输入输出用来返回结果集和显示指定查询的逻辑的和物理的I/O的信息。可以使用这些信息来确定是否应该重写查询语句或者重新设计索引。使用STATISTICS IO语句可以查看用来处理指定查询的I/O信息。就象SHOWPLAN语句一样,优化器隐藏也用来调整查询性能。优化器隐藏可以对查询性能提供较小的改进,并且如果索引策略发生了改变,那么这种优化器隐藏就毫无用处了。因此,限制使用优化器隐藏,这是因为优化器隐藏更有效率和更有柔性。当使用优化器隐藏时,考虑这些规则:指定索引名称、当index_id为0时为使用表扫描、当index_id为1时为使用聚簇索引;优化器隐藏覆盖查询优化器,如果数据或者环境发生了变化,那么必须修改优化器隐藏。
十一、索引调整向导
索引调整向导是一种工具,可以分析一系列数据库的查询语句,提供使用一系列数据库索引的建议,优化整个查询语句的性能。对于查询语句,需要指定下列内容:
查询语句,这是将要优化的工作量
包含了这些表的数据库,在这些表中,可以创建索引,提高查询性能。在分析中使用的表
在分析中,考虑的约束条件,例如索引可以使用的最大磁盘空间 这里指的工作量,可以来自两个方面:使用SQL Server捕捉的轨迹和包含了SQL语句的文件。索引调整向导总是基于一个已经定义好的工作量。如果一个工作量不能反映正常的操作,那么它建议使用的索引不是实际的工作量上性能最好的索引。索引调整向导调用查询分析器,使用所有可能的组合评定在这个工作量中每一个查询语句的性能。然后,建议在整个工作量上可以提高整个查询语句的性能的索引。如果没有供索引调整向导来分析的工作量,那么可以使用图解器立即创建它。一旦决定跟踪一条正常数据库活动的描述样本,向导能够分析这种工作量和推荐能够提高数据库工作性能的索引配置。
索引调整向导对工作量进行分析之后,可以查看到一系列的报告,还可以使该向导立即创建所建议的最佳索引,或者使这项工作成为一种可以调度的作业,或者生成一个包含创建这些索引的SQL语句的文件。索引调整向导允许为SQL Server数据库选
择和创建一种理想的索引组合和统计,而不要求对数据库结构、工作量或者SQL Server
第二篇:读书的好处与坏处
读书的好处与坏处
古人云“书是逆境中的慰藉”、“书是人类进步的阶梯”、“书是人类最好的营养品”„„是的书对我们来说很重要,我们在生活中有一大半时间都是沉浸在书中的。读好书,虽好但接触了漫画、卡通„„之类的书不但影响我们的学习,而且有的同学会迷上它千方百计的想法去买,如果那样就不好了。今天我们就来谈谈读书的好处与坏处。要我说读书可以增长我们的知识,读书还可以是我们了解更多的写作方法„„这些东西可以分为六大类:
1.可以使我们增长见识,不出门,便可知天下事.2.可提高我们的阅读能力和写作水平.3.可以使我们变的有修养.4.可以使我们找到好工作.5.可以使我们在竞争激烈的社会立于不败之地.你听过这样一个故事吗?有一个人以前不懂的怎样在应聘的时候,打动考官的心,所以经常高高兴兴而去,败兴而归,后来,发现在面试的时候,不但需要本专业的知识熟练,还要知道其他更多的知识来为你保驾,比如有次去应聘一个建材销售经理时,因为她不但把市场的销售分析的头头世道的情况下,还发表了一下在装修初期,如何消除异味及环保的知识,当时就被老总留下了!看读书很有好处吧!不过读书的坏处也是有的,不少人都有在卫生间“方便”时读书看报的习惯,有的甚至在卫生间设置了小书架,声称在这里读书的效
率最高。但他们或许不知道,这种如厕阅读的习惯容易引发痔疮、直肠黏膜脱落甚至骨盆下坠等疾病。我们班也有人喜欢看漫画、卡通等,这还没什么,可是他们有时上课都还藏在抽屉里看这可是很影响学习的。有很多同学的家中放满了作文书,可它们就像放在那里装饰的,小主人动也不动一下。如果你仔细寻找还能发现许多的“秘密”(指漫画书)呢!这样既浪费钱,书又容易脏。一个男孩的不知道在看什么书,迷着了,居然撞路灯上去了,!在说读书如果读成 了书呆子就不好了,总之读好书就像交了许多好朋友能让你开阔眼界增长能力,读坏书就像交了不三不四的朋友让你走上斜路而不能自控思想;不能清楚头脑;不能明白而犯错误。我们读书重点在于对书的选择和一个适度的问题。在现在这么资讯发达的年代,想饱览尽天下书只是梦想而已,选择可以帮助你达到目标的书和一些用于消遣的书就行了 不要多多益善,足够就好
第三篇:读书的好处与坏处
读书的好处
古人云:“书中自有黄金屋,书中自有颜如玉。”可见,古人对读书的情有独钟。其实,对于任何人而言,读书最大的好处在于:它让求知的人从中获知,让无知的人变得有知。对于坎坷曲折的人生道路而言,读书便是最佳的润滑剂。面对苦难,我们苦闷、彷徨、悲伤、绝望,甚至我们低下了曾经高贵骄傲的头。然而我们可否想到过书籍可以给予我们希望和勇气,将慰藉缓缓注入我们干枯的心田,使黑暗的天空再现光芒?在书籍的带领下,我们不断磨炼自己的意志,而我们的心灵也将渐渐充实成熟。
读书能够荡涤浮躁的尘埃污秽,过滤出一股沁人心脾的灵新之气,甚至还可以营造出一种超凡脱俗的娴静氛围。
高尔基先生说过:“书籍是人类进步的阶梯。”书还能带给你许多重要的好处。
多读书,可以让你觉得有许多的写作灵感。可以让你在写作文的方法上用的更好。在写作的时候,我们往往可以运用一些书中的好词好句和生活哲理。让别人觉得你更富有文采,美感。
多读书,可以让你全身都有礼节。俗话说:“第一印象最重要。”从你留给别人的第一印象中,就可以让别人看出你是什么样的人。所以多读书可以让人感觉你知书答礼,颇有风度。
多读书,可以让你多增加一些课外知识。培根先生说过:“知识就是力量。”不错,多读书,增长了课外知识,可以让你感到浑身充满了一股力量。这种力量可以激励着你不断地前进,不断地成长。从书中,你往往可以发现自己身上的不足之处,使你不断地改正错误,摆正自己前进的方向。所以,书也是我们的良师益友。
多读书,可以让你变聪明,变得有智慧去战胜对手。书让你变得更聪明,你就可以勇敢地面对困难。让你用自己的方法来解决这个问题。这样,你又向你自己的人生道路上迈出了一步。
多读书,也能使你的心情便得快乐。读书也是一种休闲,一种娱乐的方式。读书可以调节身体的血管流动,使你身心健康。所以在书的海洋里遨游也是一种无限快乐的事情。用读书来为自己放松心情也是一种十分明智的。
读书能陶冶人的情操,给人知识和智慧。所以,我们应该多读书,为我们以后的人生道路打下好的、扎实的基础!
读书的坏处
首先,读课外书浪费时间,分散精力。中学生的课业负担实在很重,精力有限,“一心不能二用”。有些同学在家看,在学校看,上课也想着课外书,还得躲避老师家长的眼睛。结果,分散了精力,荒废了学业,得不偿失。
其次,课外书范围广,内容杂,有些根本不适合初中生阅读。我们正处于身心发育尚未成熟的阶段,没有很强的辨析能力和鉴赏能力,不善于选择适合我们的课外书,大多是觉得好看就盲目阅读,往往不能理解它真正的含义。
其实,课本上的知识才是最基础的,是经过了几代人精心选编的精品,它能保证我们的知识更系统、更完善、更全面。它好比是西瓜,而课外书就是芝麻,虽然两者都有营养,但我们一定时期只能抓一样,那当然不能“捡了芝麻,丢了西瓜”!我认为,阅读课外书籍影响正课学习。
课外阅读的范围相当广泛,其中有营养丰富的精神食粮,也有糟粕。通过阅读可以百折不回,知难而上,也能心灰意冷,万念俱灰。青少年正处于生理发育期,心理也不成熟,情绪不稳定,受外界影响后波动较大。尤其看过武侠、言情方面的小说后,不少初中生完全沉浸在虚构的故事情节中,为主人公悲惨的命运扼腕叹息,为美妙的故事情节想入非非。上课时“身在曹营心在汉”,根本无心听讲,这样的代价是不是太沉重了呢?这样还能说不影响正课学习吗?
在浩如烟海的课外书籍中,同学们千万不要陷入泥潭,不能自拔。要有选择地读好书,决不能乐观到“明知山有虎,偏向虎山行”的地步。
有同学说,大量阅读课外书会给我们的正课学习以很大的帮助,其实并不尽然。
中学时期,由于课程增多,学习时间也就相应减少,而我们正是需要打牢基础的时候,很难在正课学习之外抽出很多空闲时间大量阅读课外书。有的同学为了看课外书竟然侵占课堂时间。老师在上面讲课,他们却在下面津津有味地沉浸于课外书离奇的情节中,长此下去,岂能不影响正课学习?
有许多中学生看书并不加以选择,尤其是武打、言情,甚至于色情书刊,在所读书中颇占分量,请问,读过这些书后,会有何收益?这正如英国小说家菲尔丁所说:“不好的书也像不好的朋友一样,可能会把你戕害。”
当然读些内容健康的课外书对于正课学习不无裨益,但要注意协调好与学习正课之间的关系,否则将有害无益。
第四篇:跆拳道优点与好处
跆拳道给青少年带来的好处和优点
理论上 只要软骨不完全钙化 就可以长高 而跆拳道是一项腿部为主的搏击运动
男的运动员一般很高 这个你可以去查一下
那些搏击运动员的档案
因该说 适当的运动最起码不会有坏处 但是 运动完后一定要科学的放松 这个甚至不训练都重要
家长都希望孩子身体健康 我的家长也是您这种想法
我认为运动带给我的不仅有身体健康 还有更多
建议您把小孩领到大的正规道馆 跆拳道有很多宗旨对人有好的影响。
跆拳道对于青少年成长的影响
跆拳道使人体所有器官都运动起来,进而锻炼身体,刺激脑细胞的发育,强化人的体力和脑力,提高人的分析力、观察力、判断力,培养顽强、勇敢、奋进、拼搏的信念和意志,健美体型、增强自信、缓解压力。跆拳道在于“以礼开始, 以礼结束”的崇礼精神,尤其讲究未曾学艺先学礼,未曾习武先习德,练习者从开始就养成谦逊、宽容、礼让的高尚品德和尊师重道、讲究守信、见义勇为的情操,使孩子养成忍让谦恭的美德。
跆拳道极力提倡培养练习者具有高尚的道德品质,磨炼成刚强不屈的意志,健全和完美的风度以及蓬勃向上的体育精神。跆拳道运动紧张激烈,对抗性强,可使人强壮筋骨,提高各关节的灵性及肌肉的伸展性和收缩能力,提高人的速度、反应、灵敏、力量和耐力素质,提高人体内脏器官的机能和人体神经系统的灵活性。通过攻防练习,可以学习掌握实用技击术和防身自卫的能力。
跆拳道比赛或实战时,观赏竞技强,享受击打艺术的美感,双方腿法技术在对抗中表现得淋漓尽致,不仅给人以美的享受,还能激发人的斗志,鼓舞人奋发向上的精神,陶冶人的道德情操,是使人在欣赏的同时潜移默化地受到良好的意志品质教育。
练习跆拳道能够改善和增强体质提高防身自卫能力磨练意志,培养道德情操娱乐观赏,丰富文化生活武术具有健身、防身、修身养性、娱乐观赏等多方面的作用,是人们增强体质,振奋精神的一种好手段。
一、修身养性 培养道德情操
文以评心,武以观德”说明武德在中华武术文化方面的重要地位。武术以“尚武崇德”作为教育的基本原则,“尚武”,能培养“自强不息”的精神,通过长期的武术训练,练出了强健的体魄,磨练出克服困难的坚强意志,这是“自强不息”的精神基础。“崇德”崇尚道德修养,与人为善,宽厚处事,豁达胸怀,通过武术训练,磨练出吃苦耐劳的意志品质,树立尊师爱友,诚实守诺,团结互助的集体主义观念,培养高尚的道德情操和自强不息的精神,达到修身养性的教育作用。
二、防身自卫
跆拳道的最大特点就是具有技击性,其所练习的每一个动作都是围绕着技击而展开的,千百年来人们以练武防身为目的,所以学习武术掌握这门防身自卫的技能,能在危难时刻保
护自己及亲人生命财产的安全。
三、强身健体、增强体质
练习跆拳道时人体各部位都在运动,对人体的锻炼是全方位的、多层次的,长时间进行武术训练不但能使人体在速度、力量、耐力、柔韧性等身体素质方面得到很大提高,而且还能调节体内阴阳平衡,调养气血,改善人体机能,提高机体抵抗力和免疫力,可纠正青少年的含胸、弓背等不良身体姿态,对现在青少年过于肥胖、消瘦、厌食等现象都有非常好的改善作用。
四、锻炼意志品质
练武对人意志品质的考验是多面的,通过练习要有“冬练三九,夏练三伏”、常年有恒、坚持不懈的意志品质。要克服枯燥关,培养吃苦耐劳、永不自满的品质,锻炼勇敢无畏、坚韧不屈的意志,经过长期锻炼,可培养练武者勤奋、刻苦、果断、顽强、虚心好学、勇于进
取的良好生活习性和意志。
在身体形态方面跆拳道能很好的塑造孩子的体型跆拳道属于四肢匀称刑发展方向运动类型可以使孩子的躯干和下肢体长度均手臂较长髋骨相对较窄当然这些都要在至少三年的时间以上才能被有效塑造。
第五篇:辩论稿:克隆的好处与坏处
克隆的好处与坏处
好处
论据一:美国,瑞士等国已经能利用克隆技术培植的人体皮肤进行植皮手术。曾经有一位美国妇女在一次煤气炉意外爆炸中受伤,75%的体表被严重烧伤。医生取下一小块未遭损坏的皮肤,送到一家生化科技公司。一个月以后,该公司利用先进的克隆技术,培植出了一大块健康的新皮肤,使患者迅速得以痊愈。这一全新技术避免了异体植皮可能出现的排异反应,给人类带来了福音。科学家们预言,在不久的将来,他们还将借助克隆技术制造出人的耳朵、软骨、肝脏,甚至心脏,动脉等人体组织和器官,供医院临床使用。
论据二:在繁殖许多有价值的基因方面,克隆技术是也有大用武之地。例如,在基因工程操作中,科学家们为了让细菌等微生物“生产”出名贵的药品,如有希望使侏儒症患者重新长高的生长激素以及能抗多种病毒感染的干扰素等等,分别将一些相应的人体基因转移到不同的微生物细胞中,再设法使这些微生物细胞大量繁殖。与此同时,人体基因数目也随着微生物的繁殖而增加。在人体基应被大量克隆时,微生物也随之大量的“生产”出人们所需要的名贵药品了。论据三:在基础生命科学方面,克隆技术使得对基因功能研究从以往只能在小鼠身上进行,到现在在多种动物身上均可得到实现,这有利于更加清晰地揭示基因功能和生命本质;克隆技术提供了研究哺乳动物细胞发育全能型以及核质关系最有效的手段之一;克隆技术可以克隆出各种濒临珍稀动物,从而提供基因型完全一致的实验动物,这有利于找到疾病的有效治疗方法,揭示发病的机制,并有助于抗衰老及其机制的研究。
总结(好处):
一、无排斥反应的器官移植。
二、濒危物种保护。坏处:
一、克隆技术现在还不成熟,克隆人可能有很多先天性生理缺陷。
二、克隆人的身份难以认定,他们与被克隆者之间的关系无法纳入现有的伦理体系。
三、人类繁殖后代的过程不需要两性共同参与,将对现有的社会关系、家庭结构造成难以承受的巨大冲击。
四、克隆技术有可能被滥用,成为恐怖分子的工具。
五、从生物多样性上来说,大量基因结构完全相同的克隆人,可能诱发新型疾病的广泛传播,对人类的生存不利。
六、克隆人可能因自己的特殊身份而产生心理缺陷,形成新的社会问题。从道德价值的角度:
一、从社会伦理角度,克隆人是对人类发展的一种过强的干预,可能影响人种的自然构成和自然发展。
二、从家庭伦理角度,会加剧家庭多元化倾向,瓦解正常的人伦秩序,改变人的亲系关系,丧失基本的归属感。
三、从性伦理学角度,完全改变了人类自然的、基于性爱的生育方式,使人口的产生与性爱分离,破坏人类的感情。
四、从生命伦理学角度,破坏了人拥有独特基因的权利,有可能导致人种的退化,还会使正常的生与死的观念发生动摇。
从生态层面:
克隆技术导致的基因复制,会威胁基因多样性的保持,生物的演化将出现一个逆向的颠倒过程,即由复杂走向简单,这对生物的生存是极为不利的。从文化层面:
克隆人是对自然生殖的替代和否定,打破了生物演进的自律性,带有典型的反自然性质。与当今正在兴起的祟尚天人合一、回归自然的基本文化趋向相悖。从哲学层面:
通过克隆技术实现人的自我复制和自我再现之后,可能导致人的身心关系的紊乱。人的不可重复性和不可替代性的个性规定因大量复制而丧失了唯一性,丧失了自我及其个性特征的自然基础和生物学前提。