数据库技术
文章平均质量分 61
laoniuer
这个作者很懒,什么都没留下…
展开
-
数据库主键设计之思考
http://sq1228.iteye.com/blog/192978主键的必要性有些朋友可能不提倡数据库表必须要主键,但在我的思考中,觉得每个表都应该具有主键,不管是单主键还是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦。主键的无意义性我强调主...原创 2008-07-21 10:51:24 · 72 阅读 · 0 评论 -
评价索引的有效性(Evaluating Index Usefulness)
SQL Server提供索引主要有两个原因:其一是作为一种实施保证数据库表中数据唯一性的方法;其二,提供了一种快速访问表中数据的方法。创建合适的索引是数据库物理设计时最为重要的方面之一。因为你不能在一个表上无限制地创建索引,而且不管怎么说,它也是不是可行的。所以,你将想在一些具有高选择性(high Selectivity )的列上创建索引,这样,查询时系统将会利用这些索引。一个索引的选择性定义...2009-10-29 15:29:12 · 367 阅读 · 0 评论 -
索引设计指南( Index Design Guidelines)
[b]SQL Server的索引对用户和T-SQL开发者来说几乎是透明的[/b]。除非用户使用表提示(table hints)来强制优化器使用某个具体的索引,否则查询中的索引不能被具体指定。[b]通常情况下,基于索引键直方图的值,SQL Server的基于代价的优化器从I/O角度会选择代价最小的索引。[/b]Chapter35会详细讲述优化器如何评估I/O,并决定采用最有效的查询计划。本节...2009-12-02 16:51:13 · 193 阅读 · 0 评论 -
索引统计(Index Statistics)
正如前面提到的,键的选择性是决定当执行一个查询时是否使用索引的重要因素。SQL Server在系统表sysindexs的statblob字段中存储了键的选择性和样本直方图的值。查询优化器正是基于索引键对应于该列中的值和查询中的SARG,来决定使用哪个索引。Statblob列是一个image类型列,为了看到存储在该列中的统计信息,可使用DBCC SHOW_STATISTICS命令,该命令返回...原创 2009-12-03 10:56:08 · 2012 阅读 · 0 评论 -
数据库性能调优概观
一般而言,影响数据整体性能的因素如图所示。[align=center][img]http://dl.iteye.com/upload/attachment/232560/0529e8ef-ba67-39ca-bfde-27544582c9e3.png[/img][/align]若数据库设计得宜,注意了切割数据、保留了访问灵活性,有效地使用了SQL语句,数量适当且有用的索引,避免...2010-04-11 19:24:54 · 117 阅读 · 0 评论 -
SQL Server性能调优指南
经过几个月断断续续,比较系统学习,终于对数据库优化中所涉及到的索引技术有了一个深刻的认识。解决问题,我喜欢从“根”上开始,刨根问底,知其然,且知其所以然。这样在实际中方能运用自如,游刃有余。本系列文章大部分都是从《Microsoft SQL Server 2000 Unleashed》一书中翻译过来的,在翻译的过程中,极少的地方加上了自己的理解。第一部分:性能调优基础[li...2010-04-13 09:48:47 · 115 阅读 · 0 评论 -
SQL Server中三种查找数据方法的比较
在SQL Server中主要有有三种方式可以查找数据,分别是: [list][*]表扫描(Table scan)[*] 索引扫描(Index scan)[*] 索引查找(Index seek)[/list]Index seek中,SQL Server 沿着索引树(index tree)从根级(root level)向下进行索引键值匹配搜索,直到搜索到指定的行,然后使用存储在...2010-04-13 13:18:33 · 302 阅读 · 0 评论 -
索引和性能
主要内容包括: 索引使用标准(Index Usage Criteria)索引的选择(Index Selection)索引统计(Index Statistics)索引设计指南(Index Design Guidelines)索引视图(Indexed Views)索引计算列(Indexed on Computed Columns)索引优化向导(The Index Tunin...2010-04-13 13:23:21 · 120 阅读 · 0 评论 -
评价索引的有效性(Evaluating Index Usefulness)
SQL Server提供索引主要有两个原因:其一是作为一种保证数据库表中数据唯一性的方法;其二,提供了一种快速访问表中数据的方法。创建合适的索引是数据库物理设计时最为重要的方面之一。因为你不能在一个表上无限制地创建索引,而且不管怎么说,它也是不可行的。所以,你将想在一些具有高选择性 (high Selectivity )的列上创建索引,这样,查询时系统将会利用这些索引。一个索引的选择性定义如下:...2010-04-13 13:39:53 · 172 阅读 · 0 评论 -
视图索引(Indexed Views)
正如第27章所讲的那样,SQL Server2000允许你创建索引视图。一个索引的视图是任意在其上定义了聚集索引的视图。当一个CREATE INDEX语句在视图上执行时,视图的结果集在数据库中的组织和存储与具有聚集索引的数据表是一样的。视图中数据表上的数据发生改变将会自动反映到视图中,也会以同样的方式数据表中的变化会反映到索引中。除了聚集索引,你可以在视图上创建其他非聚集索引来提哦共另外的查询性...2010-04-13 13:50:35 · 165 阅读 · 0 评论 -
选择索引:查询VS 修改性能
I/O是决定查询性能的主要因素。数据库设计者的挑战是构建物理数据模型来提供高效的数据访问。在数据库表中创建索引允许SQL Server降低I/O数来访问数据。在逻辑和物理模型阶段定义有用的索引是关键。SQL Server优化器严重依赖于索引键值的分布和索引密度来决定查询使用哪一个索引。SQL Server优化器能使用查询中的多个索引(通过索引交叉)降低I/O的数量来检索信息。若缺少索引,优化器执...2010-04-13 13:55:18 · 159 阅读 · 0 评论 -
索引总结
提高SQL Server性能最重要的方面之一就是提供正确的索引。选择合适的索引给SQL Server 用来处理查询,包括整体上理解数据库中的查询和事务,理解数据分布,理解SQL Server如何使用索引,以及理解过多的索引对OLTP环境的影响。[b]总体来说,考虑使用聚集索引来支持范围检索或者数据需要以聚集索引的顺序进行排序;在单行或者离散行检索或者当你可以利用覆盖索引时来使用非聚集索引。使用索...2010-04-13 13:57:07 · 86 阅读 · 0 评论 -
索引的选择(Index Selection)
当决定在表中创建哪些索引时要对应用中查询进行仔细分析。[b]具体包括[/b],检查查询子句中包括了哪些列;了解数据的分布情况来决定索引的用途;对执行的查询按照重要性和频繁性进行排序。你须注意的是,在创建索引时,不要为了考虑单个的查询而忽略了该表上的其他查询(顾此失彼)。你应该提出一组索引服务于你的表中[b]最有代表性的查询[/b]。[quote][size=medium][b]建议:[/b...2009-10-29 13:56:19 · 363 阅读 · 0 评论 -
索引使用标准(Index Usage Criteria)
[size=medium][b]索引使用标准(Index Usage Criteria)[/b][/size] 为了有效地决定应该创建哪些合适的索引,你必须决定这些索引实际中是否被SQL Server使用过。如果一个索引不能被有效使用,在修改数据时,那只会浪费空间和增加不必要的负担。 [b]需要记住的主要标准是[/b]:如果至少是索引的第一列没有被包含在一个有效的搜索参数(sear...2009-10-27 17:13:25 · 239 阅读 · 0 评论 -
关系数据库的索引技术
摘 要:索引是影响关系数据库(RDBMS)性能的重要因素之一。当今常用的关系数据库,如SQL Server、Sybase、Oracle、DB2等,为了提高性能,都提供相应的索引机制。本文以微软的SQL Server数据库为例,介绍索引的概念、使用方法以及日常维护。关键词:数据库、索引、检索1 索引的概念索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表...原创 2008-07-21 11:00:03 · 105 阅读 · 0 评论 -
讲解MySQL索引的概念及数据库索引的应用
[b] 1.数据库引入了索引[/b] 用户对数据库最频繁的操作是进行数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费。为了提高检索数据的能力,数据库引入了索引机制。 [b]2.有关“索引”的比喻[/b] 从某种程度上,可以把数据库看作一本书,把索引看作书的目录,通过目录查找书中的信息,显...原创 2008-07-21 15:31:06 · 194 阅读 · 0 评论 -
Oracle:PL/SQL 中如何使用Array
Oracle本身没数组的概念,但是通过Oracle的Collections和Records类型可以模仿出单维数组和多维数组。请参考 Chapter 11、Chapter 12。---------------------- 单维数组 ------------------------[code="java"]DECLARETYPE emp_ssn_array IS TABL...原创 2009-03-06 13:13:31 · 299 阅读 · 0 评论 -
Oracle PL/SQL Programming 第四版 介绍
摘自:[url=http://www.dbanotes.net/review/oracle_plsql_programming.html]here[/url]原创 2009-03-06 13:22:15 · 130 阅读 · 0 评论 -
oracle体系
Oracle的体系很庞大,要学习它,首先要了解Oracle的框架。在这里,简要的讲一下Oracle的架构,让初学者对Oracle有一个整体的认识。 1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成) 控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件. 数据文件:存...原创 2009-03-06 13:57:27 · 91 阅读 · 0 评论 -
遇到这样的情况,如何来设计数据库
[b]问题:[/b] 举例说明,现在有个课程表,记录课程有关信息,包括课程ID(PK,不会发生变化),课程编号(业务人员自己决定,有可能发生变化),课程名称,学分等等,现在还有另外一张表,关于选课表:编号(PK),学生编号,课程ID等等信息。 我现在的问题是在选课表中是否需要加上课程编号? 如果加上,业务处理起来比较方便,许多业务处理都根据课程编号来进行,但是这样会产...2009-03-17 14:43:24 · 103 阅读 · 0 评论 -
SQL Server 中索引底层实现
[size=medium][b]页和盘区(Page and Extents)[/b][/size] 你的表(Tables)中数据实际上都存储在[b]页(pages)[/b]里,除了BLOB类型的数据。如果某列的字段的类型为BLOB那么将有一个16字节的指针指向BLOB page。页是MS SQL Server中数据存储的最小单位。每页包含以行(row)为单位保存数据。一行只能存储在一...2009-09-28 14:42:22 · 346 阅读 · 0 评论 -
理解SQL Server中页和盘区
原文:[url]http://msdn.microsoft.com/en-us/library/ms190969.aspx[/url]SQL Server中最基本的存储单元是页(page)。系统给数据库文件(.mdf .ndf)分配的磁盘空间逻辑上被分解为从0..n的多个编号连续的页。磁盘的I/O操作是在页级水平完成的,也就是说,SQL Server每次读或写整个的数据页(data pag...2009-09-29 09:56:48 · 691 阅读 · 0 评论 -
SQL Server内存管理
默认情况下,SQL Server 2000为了平衡运行在机器上其他应用程序和数据库系统内部其他组建对内存的需要,实现对系统内存的动态分配和回收。在早前的版本如7.0,你通过选项配置给SQL Server设定一个大小固定的内存;然而。除非你有具体的问题要求分配大小规定的内存,否则最好是让SQL Server动态管理内存。无论内存是以动态还是固定的方式进行分配,计算机系统为每个SQL Se...2009-09-30 14:41:57 · 128 阅读 · 0 评论 -
SQL Server 2000索引实现内幕
翻译自:Microsoft SQL Server 2000 Unleashed,Second Edition,Chapter 33,Index*********************************************************************************[size=medium][b]Indexs[/b][/size] 当对...2009-10-19 16:58:47 · 89 阅读 · 0 评论 -
索引和性能(Indexs and Performance)
[size=medium][b]索引和性能(Indexs and Performance)[/b][/size][b]From Book: SQL Server 2000 unleashed Second Edition[/b]本章主要内容包括:[list][*]索引使用标准(Index Usage Criteria)[*]索引的选择(Index Selection)...2009-10-27 15:24:30 · 144 阅读 · 0 评论 -
百万级数据查询优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:...原创 2011-03-07 14:12:26 · 162 阅读 · 0 评论