`

给表加上聚集索引和非聚集索引

 
阅读更多
创建简单非聚集索引
以下示例为 Purchasing.ProductVendor 表的 BusinessEntityID 列创建非聚集索引。


USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name FROM sys.indexes
            WHERE name = N'IX_ProductVendor_VendorID')
    DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
GO
CREATE INDEX IX_ProductVendor_VendorID 
    ON Purchasing.ProductVendor (BusinessEntityID); 
GO

 

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

 
USE AdventureWorks2008R2
GO
IF EXISTS (SELECT name FROM sys.indexes
            WHERE name = N'IX_SalesPerson_SalesQuota_SalesYTD')
    DROP INDEX IX_SalesPerson_SalesQuota_SalesYTD ON Sales.SalesPerson ;
GO
CREATE NONCLUSTERED INDEX IX_SalesPerson_SalesQuota_SalesYTD
    ON Sales.SalesPerson (SalesQuota, SalesYTD);
GO

 

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

  
USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name from sys.indexes
             WHERE name = N'AK_UnitMeasure_Name')
    DROP INDEX AK_UnitMeasure_Name ON Production.UnitMeasure;
GO
CREATE UNIQUE INDEX AK_UnitMeasure_Name 
    ON Production.UnitMeasure(Name);
GO

 
分享到:
评论

相关推荐

    聚集索引表插入数据和删除数据的方式是怎样的

    先创建一个聚集索引表这个表每个行由int(4字节),char(999字节)和varchar(0字节组成),所以每...10:IAM页面IndexID索引ID,0代表堆,1代表聚集索引,2-250代表非聚集索引大于250就是text或image字段看一下页面内容我们创

    数据库索引

    - **非聚集索引结构(组合索引a字段和gender字段)**:此索引结合了两个字段的值,可以提高查询效率。 #### 索引的扩展 ##### 组合索引及SQL优化 组合索引是由多个列组成的索引,例如在一个`buy_log`表中可以有两...

    mysql索引共2页.pdf.zip

    - MyISAM使用非聚集索引,不支持行级锁定,适合读多写少的场景。 以上内容仅为MySQL索引的基础知识,深入学习还需结合实际案例和实战经验。理解并合理使用索引,对于提升数据库性能至关重要。

    浅析SQL Server的聚焦使用索引和查询执行计划

    而非聚集索引(Non-Clustered Index)则是一个独立的结构,包含了指向表中实际数据行的逻辑指针,允许有多个非聚集索引。 在默认情况下,SQL Server会选择最有效的索引来执行查询。例如,第一条查询`SELECT orderid...

    SQL Server开发基本规范

    索引可以分为聚集索引和非聚集索引。每个索引可以包含表中的一个或多个字段。如果表有主键,那么主键自动成为聚集索引,可以为其建立非聚焦索引。如果表没有主键,可以为其建立聚集和非聚集索引。需要注意的是,聚集...

    数据库查询优化.ppt

    对于非聚集索引,有些查询甚至可以不访问数据页。聚集索引可以避免数据插入操作集中于表的最后一个数据页。 索引的存储一条索引记录中包含的基本信息包括键值(即你定义索引时指定的所有字段的值)和逻辑指针(指向...

    SQL Server数据库中伪列及伪列的含义详解

    下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值;对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个常识,对此不作具体详细阐述。 这里主要...

    计算机等考三级数据库辅导:其他书上没有的索引使用经验总结.docx

    1. 聚合索引与非聚合索引:聚合索引是指在一个字段上创建的索引,通常这个字段的值具有聚集性,即相邻的记录有相似的值。在例子中,使用日期字段`fariqi`创建的聚合索引在查询速度上有明显优势。比如,查询所有2004...

    113 案例实战:亿级数据量商品系统的SQL调优实战(2).pdf

    聚簇索引的查询效率通常高于二级索引(非聚集索引),因为它可以直接定位到行数据,而二级索引则需要通过索引记录指向数据行,涉及到额外的查找步骤。在这个案例中,尽管使用了聚簇索引,但因为涉及到两个字段的筛选...

    SQL server自学教程

    了解不同类型的索引,如唯一索引、主键索引、非聚集索引和全文索引,并学会在合适的情况下创建和优化它们。 5. **数据库操作**:学习如何创建、修改和删除数据库及表,以及如何导入和导出数据,这些操作在日常管理...

    SQL-Server-2008基础教程2套期末考试卷AB试卷模拟测试卷-带答案.doc

    12. **索引**:索引是提高查询性能的关键,分为唯一索引(不允许重复值)和非唯一索引,聚集索引决定了数据的物理存储顺序,而非聚集索引则包含指向实际数据位置的指针。 13. **创建和修改表的语句**:`CREATE ...

    第六章课后习题1

    创建唯一索引(创建聚集索引可以保持数据排序) 6. C. 使用索引可以提高数据查询速度,但会降低数据更新速度(正确描述) 7. B. CREATE INDEX(创建索引的关键字) 8. A. DROP VIEW(删除视图的关键字) 【简答题...

    2013电大数据库原理与应用作业答案3.pdf

    `非聚集索引`的键值不决定物理顺序,但也有助于快速查找。`唯一索引`保证索引键的唯一性。 5. **Update语句**:可以同时修改多列的值,且可以指定条件,如`Update`加上`Where`子句可以有条件地更新部分数据。 6. *...

    2021-2022计算机二级等级考试试题及答案No.14647.docx

    一个表可以有多个非聚集索引,但一个表只能有一个聚集索引。 9. 数据库对象输出类型 - 查询和视图输出:查询和视图可以输出到自由表、临时表,但不能直接输出到表单。 10. 线程同步与通信 - 线程通信:Java中,...

    SQL效率提升之一些SQL编写建议并有效利用索引

    10. **ORDER BY与索引**:如果ORDER BY的列是聚集索引的一部分,那么排序过程可能会非常高效。否则,可能需要额外的排序步骤,影响查询速度。 11. **数据提取**:多使用“TOP”来限制返回的行数,特别是在处理大...

    ibd

    - 二级索引(非聚集索引)的叶子节点存储主键值,用于通过主键查找行数据。 **6. 磁盘I/O优化** - **Buffer Pool**: 缓存经常访问的页,减少磁盘I/O操作。 - **Double Write Buffer**: 防止写入过程中出现的磁盘...

    程序员培训-SQL编码规范.doc

    - 非聚集索引考虑加上`nc_`前缀,如`nc_customer_email`。 **三、其他规范** 1. **注释** - 使用`--`或`/*...*/`进行单行或多行注释,解释复杂逻辑或用途。 - 注释应保持最新,及时更新。 2. **变量** - 变量...

Global site tag (gtag.js) - Google Analytics