SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
OBJECT_NAME VARCHAR2(128)
OBJECT_ID NUMBER
=====================================
SQL> select count(*) from test;
Execution Plan
----------------------------------------------------------
Plan hash value: 1950795681
-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 5 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| TEST | 2305 | 5 (0)| 00:00:01 |
-------------------------------------------------------------------
=========SQL> alter table test modify(object_id not null);
Table altered.
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
OBJECT_NAME VARCHAR2(128)
OBJECT_ID NOT NULL NUMBER
SQL> select count(*) from test;
COUNT(*)
----------
2305
Execution Plan
----------------------------------------------------------
Plan hash value: 911472365
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | INDEX FAST FULL SCAN| INX_OBJ_ID | 2305 | 3 (0)| 00:00:01 |
----------------------------------------------------------------------------
===================================================
分享到:
相关推荐
- **组合索引**:基于多个列构建的索引,所有列值均不能为空。 ##### B-Tree索引 - **定义**:B-Tree是一种平衡的多路搜索树,通常用于实现数据库索引。 - **特性**: - 每个节点最多拥有m个子树。 - 根节点最少...
1. **非空约束 (NOT NULL)**:不允许字段值为空。 2. **唯一约束 (UNIQUE)**:确保字段中的每个值都是唯一的。 3. **主键约束 (PRIMARY KEY)**:标识表中的唯一记录,通常与自动递增的整数结合使用。 4. **外键约束 ...
保证索引列中的值是唯一的。 - **聚集索引:** 数据按照索引顺序存储,每个表最多只能有一个聚集索引。 - **非聚集索引:** 存储索引项的物理顺序与表中记录的物理顺序无关。 **创建索引示例:** ```sql -- 创建...
通过对聚集索引与非聚集索引的选择、索引列的排序方式、填充因子的设定以及避免不当的索引设计等方面进行详细的讲解,为读者提供一套实用的索引设计指南,从而帮助提升系统的整体性能。 #### 关键词 - 索引 - 聚集...
**定义:** 是否允许用户选择图表中的特定元素。 **用途:** 允许用户交互式地选择图表中的数据点或其他元素,便于进一步分析。 ##### AllowSeriesSelection **定义:** 控制是否允许用户选择数据序列。 **用途:**...
- **主键约束**:`PRIMARY KEY`确保列或列组合的唯一性,并且不允许为空。 - **唯一性约束**:`UNIQUE`确保列或列组合的唯一性,但允许为空。 - **外键约束**:`FOREIGN KEY`用于定义与另一张表的主键的联系。 -...
- **修改列**: 要更改列属性,通常需要先删除再重建列,因为SQL不支持直接修改列定义。 6. **索引**: - **创建索引**: 使用`CREATE INDEX`创建索引,可选`UNIQUE`确保唯一性。 - **删除索引**: `DROP INDEX`...
1. **为频繁排序、分组、联合操作的字段建立索引:** 这些操作通常需要对数据进行排序,索引能够显著提高这类操作的速度。 2. **为常用的查询条件字段建立索引:** 经常被用于WHERE子句中的字段应当建立索引,以减少...
- **覆盖索引**:构建覆盖索引,使得查询可以在索引中完成,减少对主键索引的访问。 ##### 2.4 使用COUNT(COLUMN) - **原理**:`COUNT(column)`只计算非NULL的column值,相对于`COUNT(*)`,它可以减少数据的扫描量...
非聚集索引提供了更多的查询优化选择,尤其当查询涉及到不在聚集索引中的列时,非聚集索引可以帮助查询优化器避免全表扫描,从而提升性能。 #### 四、应用索引视图的优点 1. **提高数据访问速度**:通过预先计算和...
- **GROUP BY子句**:按指定列对数据进行分组。 - **HAVING子句**:在分组后设置条件过滤。 4. **连接查询**: - **INNER JOIN**:返回两个表中存在匹配的记录。 - **LEFT JOIN (OUTER JOIN)**:返回左表的所有...
- **PRIMARY KEY**: 主键,用于唯一标识表中每一行的字段,不允许为空且唯一。 - **IDENTITY**: 标识列,自增长的整数列,通常用作主键。 - **FOREIGN KEY**: 外键,用于建立两个表之间的关联,引用另一个表的...
29. **不明确的索引等级**:确保索引列在查询中出现的位置与索引定义一致。 30. **强制索引失效**:在测试和优化时,有时需要强制绕过索引以观察不同执行计划的影响。 31. **避免在索引列上使用计算**:计算会阻止...
实验三主要围绕数据库中的视图和索引展开,旨在帮助学习者深入了解数据库操作。以下是针对实验内容的详细说明: ### 视图 1. **理解视图的概念**:视图是数据库中的虚拟表,它不存储数据,而是基于一个或多个表的...
- **分组查询**:GROUP BY语句用于按一个或多个列对结果进行分组,常与聚合函数一起使用,如AVG、SUM、MAX、MIN和COUNT。 3. **填空题** - **索引**:索引分为聚集索引和非聚集索引。聚集索引决定了数据在磁盘上...
- 避免过度索引,以免影响插入和更新操作的性能。 2. **查询优化** - 使用EXPLAIN PLAN分析查询计划,找出性能瓶颈。 - 避免在WHERE子句中使用函数或表达式,这可能使得索引无法使用。 - 选择合适的连接方式和...
- **选择区分度高的列**: 区分度公式为COUNT(DISTINCT col) / COUNT(*),比率越高,查询效率越高。 - **唯一键**: 对于具有唯一性的字段,建议建立唯一键索引。 #### 二、EXPLAIN中有用的信息 **1. 基本用法** ...
- **4.1.3 列别名**:使用AS关键字为列命名别名。 - **4.1.4 按条件过滤**:使用WHERE子句根据条件过滤数据。 - **4.1.5 数据汇总**:使用聚合函数(如COUNT、SUM、AVG等)对数据进行汇总统计。 - **4.1.6 排序**:...
`NOT NULL` 表示该列不允许为空,`PRIMARY KEY` 表示该列为表的主键。 **5. 根据已有的表创建新表** - **使用旧表创建新表**: - **语法**: `CREATE TABLE 新表名 LIKE 旧表名;` - **示例**: `CREATE TABLE tab_...