网站首页 > 技术文章 正文
主题一: 体系结构
数据库很复杂---》体系结构很复杂---》为什么体系结构很复杂?
因为稀有资源不足,所以oracle引入复杂的内存、外存有效的管理稀有资源。
什么是稀有资源?(引入人类历史)
1.Oracle的数据保存在什么地方?
硬盘(机械速度 读取磁盘的速度)
2.Oracle的数据在什么地方更新?
内存(90%)(电子速度 计算机的配置)
所以Oracle的稀有资源是什么?(硬盘、内存)
举一个场景
数据库断电(事务执行一半断电,再次启动时要恢复已经写入得数据)
oracle体系结构设计的初衷是什么?
不是为了处理SQL,而是为了以后可以方便改进系统的效率和数据的恢复
数据库由两分组成
实例(instance):内存和后台进程的集合
SGA:系统全局区
{
共享池(shared pool):
{
库缓存(library cache):
{
作用:共享sql、plsql代码
}
数据字典缓存(data dict cache):
{
作用:保存数据字典和用户的权限信息
}
}
数据库高速区:产生脏数据的场所。
重做日志缓冲区:操作ddl和dml时必须先写入重做日志缓冲区
}
PGA:程序全局区
排序信息、游标信息、会话信息
后台进程:smon、dbwr、pmon、lgwr、ckpt
数据库(database):由一系列数据库文件组成
控制文件:
数据文件:
日志文件:
参数文件:
口令文件:
归档日志文件:
一条sql语句是如何执行的?
编译
1.库缓存检查是否存在
2.检查语法是否正确
3.查询数据字段检查表和列的定义
4.加编译锁(sql语句在编译过程中涉及的对象不能被改变)
5.查询引用对象的用户权限
6.生成执行计划、装入sql共享区
执行
7.服务器进程执行Sql语句
提取数据
8.服务器进程返回数据集合,必要的时候要进行排序
主题二: 存储结构
1.Oracle为什么要引入那么复杂的逻辑结构?
可移植性强、不依赖操作系统文件
2.引入表空间(Tablespace)、段(Segment)、区(Extent)、块(Oracle block)的概念(看图说话)
3.如何查询当前数据库的现有表空间?
select * from dba_tablespaces
4.表空间分类
数据表空间 固定段
还原表空间 回滚段
临时表空间 临时段
固定段:表、索引
回滚段:需要回滚数据
临时段:临时的排序信息、临时表
5.创建用户时要选择默认表空间和临时表空间
默认表空间:创建表的时候如果不指定表存放的表空间则保存在当前用户的默认表空间
临时表空间:为当前用户指定临时表空间,如果不指定会使用数据库的默认临时表空间
(打开user.sql进行讲解)
如何查看数据库的默认临时表空间?
select * from DataBase_properties where property_name like 'DEFAULT%';
6.表空间段管理的两种方式
数据字典方式(9i中已经被废弃)
Create TableSpace lession_db_data
DataFile 'E:\tablespace\lession_db_data.dbf' Size 5M
MINIMUM EXTENT 50k EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE
(INITIAL 50K NEXT 50K MAXEXTENTS 100 PCTINCREASE 0);
n-2
next*(1+PCTINCREASE/100) 从第三次开始
本地创建方式
Create TableSpace lession_data
DataFile 'E:\tablespace\lession_data.dbf'
Size 5M
Extent Management Local
uniform size 1M;
7.如果创建表空间?从语法进行介绍
Create TableSpace lession_index
DataFile 'E:\tablespace\lession_index.dbf'
Size 5M
Extent Management Local
uniform size 1M;
如何查看数据文件?
select file_id,file_name,tablespace_name,bytes/(1024*1024)MB from dba_data_files;
如何创建临时表空间?
Create TEMPORARY TableSpace lession_temp
Tempfile 'E:\tablespace\lession_temp.dbf'
Size 5M
Extent Management Local
uniform size 1M;
查看临时表空间文件的方式?
select * from v$tempfile
8.删除表空间的问题
删除表空间的语法
drop tablespace LESSION_DATA including contents and datafiles;
注 默认临时表空间不允许删除
更新一个临时表空间为默认临时表空间
alter database default temporary tablespace lession_temp;
9.表空间不足了怎么办?
1.增加文件
alter tablespace LESSION_INDEX add datafile 'E:\TABLESPACE\LESSION_INDEX02.DBF' size 5M;
2.扩充文件
alter database datafile 'E:\TABLESPACE\LESSION_INDEX.DBF' resize 10M;
准备工作 还原数据库最初的结构
模拟我们现实开发中的跑库流程
猜你喜欢
- 2024-10-15 详解Oracle 性能优化之内核的shmall、shmmax和信号灯参数
- 2024-10-15 ORACLE不常用冷知识之Package oracle中package怎么执行的
- 2024-10-15 使用zabbix监控Oracle内存占用高 oracle占用内存过高
- 2024-10-15 Oracle HugePage在生产环境中的使用
- 2024-10-15 记一次Oracle异常关闭资源没有被释放,导致无法正常重启的故障
- 2024-10-15 oracle性能调优-impdp导入加速 oracle19c impdp
- 2024-10-15 oracle实例是什么 oracle实例是什么 lisener
- 2024-10-15 十个最流行的Oracle性能指标,DBA必知
- 2024-10-15 只需3分钟,学会Oracle数据库自动SGA管理
- 2024-10-15 优化体系--oracle索引篇 oracle索引优化原则
你 发表评论:
欢迎- 06-24发现一款开源宝藏级工作流低代码快速开发平台
- 06-24程序员危险了,这是一个 无代码平台+AI+code做项目的案例
- 06-24一款全新的工作流,低代码快速开发平台
- 06-24如何用好AI,改造自己的设计工作流?
- 06-24濮阳网站开发(濮阳网站建设)
- 06-24AI 如何重塑前端开发,我们该如何适应
- 06-24应届生靠这个Java简历模板拿下了5个offer
- 06-24服务端性能测试实战3-性能测试脚本开发
- 563℃Oracle分析函数之Lag和Lead()使用
- 560℃几个Oracle空值处理函数 oracle处理null值的函数
- 547℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 544℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 541℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 535℃【数据统计分析】详解Oracle分组函数之CUBE
- 524℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 516℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)