SQL-期末

Charlie

编程

SQL 3选2,标注使用哪个数据库

  • 常见函数:
    1. 字符串replace
    2. 数值计算,考虑空值,平均值空值
    3. 日期,使用索引的三种写法
  • 递归查询,withas
    • 起始体,union all,递归体,视图
  • 外连接+数值计算

结构合理、关键字、函数都有分

论述

  1. 索引的叶节点
    • 结构:N个节点,N+1个link
      • 考试一般3扇出
    • 节点分裂/合并
      • 叶节点和内部节点
      • 向上传递
  2. 日志
    • Redo
    • Undo
    • 区别,实现,问题
  3. 分区,分表,分库
    • 原因
    • 解决的问题
    • 带来新的问题
  4. SQL解释器:可能会考一个基于成本优化器的成本计算方式
    1. 优化的基本逻辑
    2. 基于成本的优化器
    3. 基于规则的优化器
  5. 建议和想法

B+Tree索引是大多DBMS缺省的索引类型,请详细描述以下几个问题:
1)B树索引的结构和使用方式

有K个子树的中间结点包含K个元素,每个节点不保存数据只保存索引,所有的数据都存储在叶节点;
所有叶节点中包含了元素的信息,还有指向元素记录的指针,并且叶节点本身按照关键字大小从小到大的顺序连接;
使用方式是根据目标元素在B树中二分查找。

2)何时该使用B树索引,并分别说明原因;并详细说明为什么系统的为外键构建索引是普遍的要求?

何时使用:
仅需要通过索引访问基本表的一部分(检索的结果集与集体的百分比低于10%)
如果处理表的多列,可以使用索引而不使用表;
为什么系统的为外键构建索引是普遍的要求:
建立外键索引可以更快速地保证数据的一致性:比如A持有B的外键,B删除记录时需要检查A中相应的行;否则,需要对A全表遍历;
建立外键索引可以避免死锁:如上所述,对A全表遍历时间很长,导致其他进程与之死锁,导致双双失败;

3)针对2)有没有例外情况?如果有请简要说明情况

如果表很小或者很少被修改,则不必建立;因为使用索引非常占用磁盘空间;

4)请描述Oracle中一种类似于B树索引结构的物理组织形式索引组织表(IOT)的基本结构和应用范围

其中的记录是排序,按主键有序的。IOT中每个叶节点既有每行的主键值,又有非主键值。
数据的存放是严格规定的, 记录的存放是排序的,查询效率非常高。数据插入以前其实就已经确定了其位置,所以不管插入的先后顺序,它在那个物理上的哪个位置与插入的先后顺序无关。这样在进行查询的时候就可以少访问很多 blocks,但是插入的时候,速度就比普通的表要慢一些。
应用范围:经常查找的表;经常通过主键访问的表;按顺序进行物理存贮;构建自己的索引结构;对主键或者唯一键区间查询、分类查询;
不适用:经常更新的表;不经常使用主键访问的表;

  • 标题: SQL-期末
  • 作者: Charlie
  • 创建于 : 2024-06-03 14:06:00
  • 更新于 : 2024-07-05 12:55:04
  • 链接: https://chillcharlie357.github.io/posts/48f5fee/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
SQL-期末