精华内容
下载资源
问答
  • 如何删除主键的聚集索引

    千次阅读 2014-11-21 02:12:05
    当我们对一个表建立一个主键时,默认会给该主键列添加一条聚集索引,这是数据库内部自动建立的,唯一性约束也会默认创建一个非聚集索引。 create table MyTable ( id int identity(1,1) primary key, name ...

    当我们对一个表建立一个主键时,默认会给该主键列添加一条聚集索引,这是数据库内部自动建立的,唯一性约束也会默认创建一个非聚集索引。

    create table MyTable
    (
       id int identity(1,1) primary key,
       name nvarchar(10) unique
    )
      exec sp_helpindex MyTable

     

     

    上面我们建立了一个主键id 和唯一性约束的name列,查看表可以看到这时产生了两个索引

    聚集索引是一个宝贵的资源,在一些表的中有时我们永远不会用到主键来作为查询条件,或者作为其他表的外键,这时主键的聚集索引

    就显得大才小用了,我们希望将聚集索引建立在其他真正需要的字段,不过当我们执行删除操作时会报以下错误

    消息 3723,级别 16,状态 4,第 1 行
    不允许对索引 'MyTable.PK__MyTable__3213E83F145C0A3F' 显式地使用 DROP INDEX。该索引正用于 PRIMARY KEY 约束的强制执行

    不过我们可以先删除主键约束,这样聚集所以就自动删除了

    alter table MyTable drop constraint PK__MyTable__3213E83F145C0A3F

    我们再看下聚集索引已经不存在了

    当然唯一约束所引起的索引也可以同样的方式操作,先删除唯一约束

    展开全文
  • 如何创建全局临时表、不知道having、不知道聚集索引和非聚集索引,更别提游标和提交叉表查询了  如何创建临时表 临时表与永久表相似,但临时表存储在 tempdb 中(如下图)。临时表有两种类型:本地临时表和全局...

    如何创建全局临时表、不知道having、不知道聚集索引和非聚集索引,更别提游标和提交叉表查询了

     如何创建临时表

    临时表与永久表相似,但临时表存储在 tempdb 中(如下图)。临时表有两种类型:本地临时表和全局临时表。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

    Having

    “Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。

    “Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。

    HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选。

      让我们还是通过具体的实例来理解GROUP BY 和 HAVING 子句:

      SQL实例:

      一、显示每个地区的总人口数和总面积:

    SELECT region, SUM(population), SUM(area)
    FROM bbc
    GROUP BY region

      先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。

      二、显示每个地区的总人口数和总面积.仅显示那些人口数量超过1000000的地区。

    SELECT region, SUM(population), SUM(area)
    FROM bbc
    GROUP BY region
    HAVING SUM(population)>1000000

    [注]  在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。

      相反,HAVING子句可以让我们筛选成组后的各组数据.

     

    游标:https://blog.csdn.net/feng2375/article/details/2063551

     

    展开全文
  • 如果只是删除聚集索引然后重新创建,则会使所有非聚集索引都被删除和重新创建两次。一旦删除聚集索引并再次重建该索引,就会发生这种情形。通过在一个步骤中重新创建索引,可以避免这一昂贵的做法。
  •   但是在建立表的时候,主键自动在主键列上建立一个聚集索引,以及通过给表增加的一个唯一约束也会自动增加一个唯一索引, 对于这类通过主键和唯一约束创建的索引是不能够通过DROP INDEX来删除的。...

     

    普通的索引可以用drop来删除:

    drop index idx_table;

     

    但是在建立表的时候,主键自动在主键列上建立一个聚集索引,以及通过给表增加的一个唯一约束也会自动增加一个唯一索引,

    对于这类通过主键和唯一约束创建的索引是不能够通过DROP INDEX来删除的。

     

    必须通过以下方法删除该聚集索引才能创建其他的索引:

    alter table tb_test drop constraint pk_tb_test;

     

    通过此方法会删除主键,因此可以在建立了其他想要建立的索引之后,重新建立主键。

     

     

     

    展开全文
  • 1. /* 建索引 ...--建聚集索引 create clustered index 索引名称 on 表名(字段) --建非聚集索引 create NONCLUSTERED index 索引名称 on 表名(字段) /* 删除索引 */ drop index 表...

    1.

    /*
    建索引
    */
    --建普通索引
    create index 索引名称 on 表名(字段)
    --建聚集索引
    create clustered index 索引名称 on 表名(字段)
    --建非聚集索引
    create NONCLUSTERED index 索引名称 on 表名(字段)

    /*
    删除索引
    */
    drop index 表名.索引名称

    2.设计表 -》右健点击字段名 -》索引/键

    转载于:https://www.cnblogs.com/8user/archive/2008/09/12/1289877.html

    展开全文
  • 理解索引的内部结构对于整体的理解索引是至关重要的,只有理解了索引的内部结构以及SQL Server是如何维护索引的,你才能理解数据插入,删除,更新,索引的创建、修改、删除所带来的成本。  叶子层级和非叶子层级 ...
  • MySQL索引应用

    2021-05-29 21:06:21
    学习目标 掌握如何创建删除索引 知道索引的优缺点 ... 从索引数据和内容数据逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引) 索引名称 说明 主键索引 (primary key) .
  • MySQL 三 索引

    2021-01-19 19:10:16
    聚集索引和辅助索引(非聚集索引)的区别?索引的数据结构有哪些?非聚簇索引一定会回表查询吗?索引设计的原则?使用索引一定能够提高查询的性能吗?什么是最左前缀原则(最左匹配原则)?B+树与B树?知道explain吗...
  • 聚集索引与辅助索引 MySQL索引管理 创建和删除索引的语法 创建索引后的测试 (查询速度的变化) 如何正确使用索引 回表 覆盖索引 联合索引 最左前缀匹配 索引下推 MySQL查询优化 : explain 慢查询优化的基本步骤 慢...
  • SQL索引优化

    2013-09-29 15:50:15
    聚集索引 , 表中存储的数据按照索引的顺序存储 , 检索效率比普通...非聚集索引 , 不影响表中的数据存储顺序 , 检索效率比聚集索引低 , 对数据新增 / 修改 / 删除的影响很小  如何让你的 SQL 运行得更
  • SQL2005 索引优化

    2011-10-13 15:33:57
    聚集索引 , 表中存储的数据按照索引的顺序存储 , 检索效率比普通索引高 , 但对数据新增 / 修改 / 删除的影响比较大 非聚集索引 , 不影响表中的数据存储顺序 , 检索效率比聚集索引低 , 对数据新增 / 修改 / 删除的...
  • 性能优化-索引1 索引1.1 什么是索引1.2 索引的存储机制1.3 ...SQL索引有两种:聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间。 下面举两个简单的例子:
  • SQL Server 2005 索引优化

    2011-08-21 08:43:30
    聚集索引: 表中存储的数据按照索引的顺序存储 , 检索效率比普通索引高 , 但对数据新增 / 修改 / 删除的影响比较大 非聚集索引 :不影响表中的数据存储顺序 , 检索效率比聚集索引低 , 对数据新增 / 修改 / 删除的...
  • 数据库 索引优化

    2011-09-14 22:49:22
    概念: 聚焦索引:表中存储的数据按照索引的顺序存储,检索效率...非聚焦索引:不影响表中的数据存储顺序,检索效率比聚集索引低,对数据新增/修改/删除的影响很小 如何让你的SQL运行得更快 ---- 人们在使用SQL时
  • sql Server 索引优化

    2007-05-24 23:46:00
    sql Server 索引优化 聚集索引 , 表中存储的数据按照索引的顺序存储 , 检索效率比普通索引高 , 但对数据新增 / 修改 / 删除的影响比较大 非聚集索引 , 不影响表中的数据存储顺序 , 检索效率比聚集索引低 , 对数据...
  • sql Server索引优化

    2007-12-11 16:19:00
    聚集索引,表中存储的数据按照索引的顺序存储,检索效率比普通索引高,但对数据新增/修改/删除的影响比较大非聚集索引,不影响表中的数据存储顺序,检索效率比聚集索引低,对数据新增/修改/删除的影响很小如何让你的SQL...
  • SQL索引使用原则

    千次阅读 2010-12-20 08:44:00
    前两篇文章我总结了一些SQL数据库索引的问题,这篇主要来分析下索引的优缼点,以及如何正确使用索引。 索引的优点:这个显而易见,正确的索引会大大提高数据查询,对结果进行排序、...例如我们在一个创建有非聚集索引

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 152
精华内容 60
关键字:

如何删除聚集索引