免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: TOADLover
打印 上一主题 下一主题

吐血了,“聚集索引”的英文名字是什么 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-09-18 14:39 |只看该作者

回复 #7 ILoveMK 的帖子

Sorry,我真的觉得你的Confirm是错误的,你能提供例子证明你是正确的吗?

这对我,非常重要

论坛徽章:
0
12 [报告]
发表于 2009-09-18 14:41 |只看该作者
哦,原来你是这么个意思:
在聚簇表上的索引就是聚集索引。
------------------------------------------

呵呵,那不就是说:
在普通表上的索引就是“非聚集索引”?

论坛徽章:
0
13 [报告]
发表于 2009-09-18 14:44 |只看该作者
那也就是说在普通表上只能建立“非聚集索引”!
-------------------------------------------------------
这样的话,就清楚了。
-------------------------------------------------------
Oracle:
“聚集索引”只能建立在“聚簇表”上。
“非聚集索引”只能建立在“普通表”上。
SQL SERVER:
普通表上可以建立“聚集索引”和“非聚集索引”

论坛徽章:
0
14 [报告]
发表于 2009-09-18 14:46 |只看该作者
-----------------------以下根本也没提到在SQL SERVER上建立聚集索引的方法,注意

索引涵盖
指查询中的SELECT与WHERE子句的所用列同时也属于非聚集索引的情况。这样就可以更快检索数据,因为所有信息都可以直接来自于索引页,从而SQL Server可以避免访问数据页。加上独立的索引文件组,可以用最快速度访问数据。

请看如下表示例:

A.创建简单非聚集索引
以下示例为 Purchasing.ProductVendor 表的 VendorID 列创建非聚集索引。
USE AdventureWorks;
GO

CREATE INDEX IX_ProductVendor_VendorID
    ON Purchasing.ProductVendor (VendorID);
GO

B. 创建简单非聚集组合索引
以下示例为 Sales.SalesPerson 表的 SalesQuota 和 SalesYTD 列创建非聚集组合索引。

CREATE NONCLUSTERED INDEX IX_SalesPerson_SalesQuota_SalesYTD
    ON Sales.SalesPerson (SalesQuota, SalesYTD);
GO

C. 创建唯一非聚集索引
以下示例为 Production.UnitMeasure 表的 Name 列创建唯一的非聚集索引。该索引将强制插入 Name 列中的数据具有唯一性。
USE AdventureWorks;
GO

CREATE UNIQUE INDEX AK_UnitMeasure_Name
    ON Production.UnitMeasure(Name);
GO
无论何时对基础数据执行插入、更新或删除操作,SQL Server 2005 数据库引擎都会自动维护索引。随着时间的推移,这些修改可能会导致索引中的信息分散在数据库中(含有碎片)。当索引包含的页中的逻辑排序(基于键值)与数据文件中的物理排序不匹配时,就存在碎片。碎片非常多的索引可能会降低查询性能,导致应用程序响应缓慢。这个时候,我们需要做得就是重新组织和重新生成索引。重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。

可以使用下列方法重新生成聚集索引和非聚集索引:
带 REBUILD 子句的 ALTER INDEX。此语句将替换 DBCC DBREINDEX 语句。
带 DROP_EXISTING 子句的 CREATE INDEX。

示例如下:
A. 重新生成索引
以下示例将重新生成单个索引。
USE AdventureWorks;
GO
ALTER INDEX PK_Employee_EmployeeID ON HumanResources.Employee
REBUILD;
GO

B.重新生成表的所有索引并指定选项
下面的示例指定了 ALL 关键字。这将重新生成与表相关联的所有索引。其中指定了三个选项。
ALTER INDEX ALL ON Production.Product
REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,
              STATISTICS_NORECOMPUTE = ON);
GO

[ 本帖最后由 TOADLover 于 2009-9-18 14:48 编辑 ]

论坛徽章:
0
15 [报告]
发表于 2009-09-18 14:54 |只看该作者
聚集索引?是不是sqlserver中的clustered   indexes?
oracle没有直接对应。
oracle的IOT表比较类似
T@as3ap> create   table   t(
    2     a   int   primary   key,b   int)
    3     organization   index
    4     ;

---------------------------------------------------------------------
这个算是比较能准备描述的。
像我这样,先有SQL SERVER经验,又转向Oracle的,往往会在Oracle中需找以往的概念的影子,以期望做对比,
很不幸地,我选择了拿“聚集索引”和“非聚集索引”当靶子。

[ 本帖最后由 TOADLover 于 2009-9-18 14:57 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2009-09-18 14:55 |只看该作者

回复 #14 ILoveMK 的帖子

聚集索引?是不是sqlserver中的clustered   indexes?
oracle没有直接对应。
oracle的IOT表比较类似
---------------------------
这个意思喽?。。。。

论坛徽章:
0
17 [报告]
发表于 2009-09-18 14:56 |只看该作者

回复 #14 ILoveMK 的帖子

sql server的聚簇索引
-------------------------
咬文嚼字一下啊,
sql server没有“聚簇索引”只有“聚集索引”

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
18 [报告]
发表于 2009-09-18 15:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP