- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库索引 分区 查询优化
索引 分区 和查询优化 索引(index) 索引是为提高数据检索的性能而建立 索引可建立在一表的一列或多列上 索引分类 逻辑上 单列或组合索引 唯一非唯一索引 注意:组合索引最多可以为32个列,并且,所有列的大小不能超过块的1/3 物理上 分区或非分区 B 树 正常或反向键 位图 DML 操作对索引的影响 插入操作导致在适当的块中插入索引项 删除行只导致逻辑删除索引项,删除的行所占用的空间不能用于新项,直到删除块中的所有项 PCTFREE 对索引没有影响 索引行格式 b-tree 每个索引行有唯一的表示 create unique index iname on tname (a,b,c) create index iname on tname (a,b,c) Label:存储列数和锁定信息 逆向键值索引 Bitmap索引 更适合Bitmap的情况 B 树索引和位图索引 B 树 适合高基数的列 更新关键字列的费用相对较低 使用OR 谓词的查询效率低 对OLTP 有用 位图 适合低基数的列 更新关键字列的费用非常昂贵 使用OR 谓词的查询效率高 对数据仓库有用 OLAP 建立通常的B-Tree 索引 索引和空值 B*Tree索引不存储完全NULL(空)的条目,但是位图索引和聚族索引存储完全NULL(空)的条目。 oracle中除了group by会认为(NULL,NULL)=(NULL,NULL),其他任何情况下的空值条目比较都视为不同的空值, 即(NULL,NULL) (NULL,NULL) 为了保证真正的唯一性,每个唯一约束(unique index)应该至少有一个NOT NULL字段。 索引和视图 如果基本表中定义了索引,一般情况下还是应该想办法用到那些索引 一些子句说明 INITRANS 指定每块中预先分配的事务项的数目,缺省值和最小值为2 MAXTRANS 限制分配给每块的事务项的数目,缺省值为255 建立B-TREE的例子 建立索引的原则 平衡查询和DML 需求 放在一个单独的表空间内(非 SYSTEM, RBS, TABLE) 使用统一的区大小(经验值: 五块的倍数或表空间MININUM EXTENT 大小的倍数) 考虑对大索引使用NOLOGGING 如果新的关键字值有可能位于当前范围内, 则设置高PCTFREE 建立逆向索引 建立逆向索引的例子 建立Bitmap索引 建立Bitmap索引的例子 SQL CREATE BITMAP INDEX test_bm_idx 2 ON test(c) 3 PCTFREE 30 4 STORAGE(INITIAL 200K NEXT 200K 5 PCTINCREASE 0 MAXEXTENTS 50) 6 TABLESPACE indx; 索引已创建。 SQL 创建基于函数的索引 SQL CREATE INDEX TEST_BFI ON TEST(A + B); 索引已创建。 SQL SELECT * FROM TEST WHERE A+B 10; 未选定行 SQL 分配释放索引空间 重建索引 重建索引命令可用来: 将索引移到另一个表空间 改进空间利用率 将反向索引改为通常的 B-tree 索引,或者将B-tree 索引改为反向索引 定期重建索引可以提高效率 重建索引的特点 使用现有索引作为数据源建立新索引 使用现有索引建立索引时无须排序从而使性能更佳 在建立新索引期间需要有足够的空间以容纳新旧索引 在建立新索引的过程中查询可继续使用现有索引 重建索引的语法 ALTER INDEX [schema.] index REBUILD [TABLESPACE tablespace] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING | NOLOGGING ] [ REVERSE | NOREVERSE ] 联机创建或者重建索引 可以在最低限度的表锁定下完成重建索引,例如: ALTER INDEX test_bm_idx REBUILD ONLINE; 或者 CREATE INDEX TEST_BT_IDX ON TEST (A,B) ONLINE; 不能在临时表中重建索引 不能重建整个分区索引,必须分别重建各分区 考虑UNIQUE 和PRIMARY KEY约束 手工控制UNIQUE 和PRIMARY KEY的相应索引。 创建大索引 分配一个较大的临时表空间或者创建一个新的大尺寸的临时表空间 用ALTER USER 语句
您可能关注的文档
最近下载
- 分立式生化分析仪的工作原原理和基本结构课件.pptx VIP
- 福建省莆田市初一新生入学分班考试真题含答案.docx VIP
- 《GB/T 43390-2023市场、民意和社会调查 移动调查指南》.pdf
- 湖南省长沙2025年七年级下学期数学期末考试试卷附参考答案 .pdf VIP
- 企业采购人员流失原因及对策的探讨.docx VIP
- 2024初中数学课程标准测试题(含答案).pdf VIP
- 福建省厦门市初一新生入学分班考试真题含答案.docx VIP
- 项目管理流程培训课件.pptx VIP
- 2025年福建省莆田市初一入学语文分班考试真题含答案.docx VIP
- 因子选股系列之八十二:超大单冲击对大单因子的影响.pdf VIP
文档评论(0)