oracle
Lei_Da_Gou
这个作者很懒,什么都没留下…
展开
-
共享sql减少硬解析
1.sql共享后会减少硬解析2.共享sql就是让sql完全相同 大小写、空格等全部相同,否则都会发生硬解析。 使用绑定变量,使sql达到完全相同。测试:declare v_sql varchar2(50);begin for i in 1..1000 loop v_sql := 'INSERT /*leilijun*/ into test v...原创 2019-12-14 18:37:46 · 167 阅读 · 0 评论 -
chain、chunk、4031错误
1.shared pool整体的大小我们可以设置 但是其中的free cache、lib cache、row cache我们分配不了。 其中容易出问题的是free cache和lib cache。2.ora-4031错误(大量硬解析存在的时候会存在ora-4031错误) 硬解析需要保存的sql和执行计划,free的chain中找不到对应的chunck。3.ch...原创 2019-12-14 17:52:52 · 232 阅读 · 0 评论 -
shared pool组成即软硬解析
shared pool的百分之七八十都是oracle的补丁没有打。shared pool作用:缓存sql语句、sql语句的执行计划。SQL语句执行:1.解析(parse) 2.执行(exec) 3.获取数据(fetch)shared pool 在解析步骤起作用,减少解析时的开销。shared pool主要分为:free(自由)、library(sql)、row(数据字典...原创 2019-12-14 17:18:00 · 156 阅读 · 0 评论 -
oracle语句执行过程
shared pool:是缓存sql语句以及sql语句对应的执行计划server process(前端进程):找shared pool中是否已经缓存了sql语句和执行计划,如果没有,则解析执行计划并放入shared pool中,如果有,则执行使用shared pool中缓存的执行计划,减少了解析sql语句所花费的CUP和IO。bufffer cache:就是缓存的dbf的数据...原创 2019-12-14 16:42:18 · 540 阅读 · 0 评论 -
oracle体系概述
1.oracle有三类文件ctl、log、dbf2.oracle实例是启动起来画的一块内存和oracle启动后的一堆进程的统称一个实例一般对应一个oracle数据库,也可以2、4、8个实例对应一个数据库,达到负载均衡的效果,但是8个的用的很少。多个实例对应一个数据库就是oracle的rac技术数据库实例:内存(SGA)+进程SGA:share pool+buffer c...原创 2019-12-14 15:23:29 · 162 阅读 · 0 评论 -
3.计算机的缓存
1.cpu包含缓存寄存器、一级缓存、二级缓存2.内存3.磁盘磁盘本身也有一块缓存区4.缓存命中逻辑IO:cpu直接从内存获取数据物理IO:cpu从磁盘获取数据缓存命中率=逻辑IO/(逻辑IO+物理IO)5.磁盘中的内存工作机制磁盘中有一个电池单独对磁盘中的内存进行供电,一旦断电,则电池会帮助磁盘中的内存数据不会被丢失,但是需要尽快恢复供电。如果超过电池能帮助...原创 2019-12-12 23:38:40 · 167 阅读 · 0 评论 -
2.磁盘数据读取机制
1.读取顺序硬盘-内存-cpu计算2.top看系统进程3.iostat 1 20看进20次cpu从磁盘读取数据的详细4.free看系统内存使用情况5.磁盘保存数据机制原因:磁臂有磁性,移动中会产生电荷,形成电荷高低,及计算机底层保存数据格式1、0,数据是存放在磁盘上的磁道,磁盘被划分为扇区,一个扇区为512kb1个磁柱=4个磁条6.磁盘读取数据机制...原创 2019-12-12 23:02:38 · 322 阅读 · 0 评论 -
1-计算机的运行机制
1.计算机组成硬盘-内存-cpu2.一个的运行过程硬盘-内存-cpu-内存3.cpu执行的时候其实是分为多个时间片执行一个时间片只能执行一个程序4.cpu消耗主要分为从内存拿数据计算、调度5.计算机运行的瓶颈在哪里IO流...原创 2019-12-12 21:33:39 · 1067 阅读 · 1 评论 -
oracle索引、序列、同义词
-- *******************索引、序列、同意词*******************-- 创建、维护和使用序列(提供有规律的数值)-- 1.创建序列CREATE SEQUENCE dept_deptid_seq-- 每次增长的数值[INCREMENT BY n] INCREMENT BY 10-- 从哪个值开始[START WITH n] START WITH 1...原创 2019-10-28 03:24:50 · 127 阅读 · 0 评论 -
oracle视图,rownum、topn问题
-- **********************视图******************************-- 1.描述视图?(可以将视图理解为存储起来的 SELECT 语句)-- 2.为什么使用视图?(控制数据访问简化查询避免重复访问相同的数据)-- 3.创建和修改视图的定义,删除视图CREATE OR REPLACE VIEW empvu10 (employee_...原创 2019-10-28 01:12:31 · 440 阅读 · 0 评论 -
oracle约束的使用
-- *****************约束(约束是表级的强制规定)******************-- 1.NOT NULL(约束只能定义在列上)-- 2.unique-- 3.PRIMARY KEYCREATE TABLE test_not_null( employee_id NUMBER(6), first_name VARCHAR2(...原创 2019-10-27 23:54:51 · 191 阅读 · 0 评论 -
创建和管理表
-- ***************查询数据字典***********-- 1.查看所有创建的表SELECT table_name FROM user_tables;--2.查看所有创建的对象SELECT DISTINCT object_type FROM user_objects;-- 3.查看用户自定义的表、视图、同义词、序列SELECT * FROM user_catalog...原创 2019-10-24 22:08:30 · 171 阅读 · 0 评论 -
oracle子查询
-- ****************子查询********************-- 1.单行子查询(=、>、>= 、<、<= 、<>)(将子查询放在比较条件的右侧?)-- 谁的工资比abel高SELECT * FROM employeesWHERE salary > (SELECT salary FROM employees WHERE e...原创 2019-10-24 21:18:40 · 164 阅读 · 0 评论 -
oracle分组函数
-- ********************分组函数,组函数忽略空值**************************--可以对数值型数据使用AVG 和 SUM 函数-- avgSELECT AVG(salary) FROM employees-- SUMSELECT SUM(salary) FROM employees-- count,除了count(*),其它都会忽略空值...原创 2019-10-23 01:50:45 · 248 阅读 · 0 评论 -
oracle多表查询
-- 一、内连接(-- 等值连接和非等值连接,其实就是两层嵌套循环得得出来的结果。因此连接字段记得加索引。)-- 1.等值连接测试SELECT e.employee_id, d.department_id,d.department_nameFROM employees e INNER JOIN departments d ON d.depar...原创 2019-10-23 00:41:34 · 149 阅读 · 0 评论 -
oracle导入外部sql文件
@D:\hr_cre.sql;使用command window窗口。sql window窗口会执行失败。原创 2019-10-20 19:12:51 · 420 阅读 · 0 评论 -
oracle-单行函数-通用函数
-- ******************单行函数-通用函数***********SELECT col1,nvl(col2,'1111') FROM t_nvl;insert into t_nvl(col2,col3) values(' ', ''); -- 插入空格insert into t_nvl(col2,col3) values('', 5); -- 插入空字符串insert...原创 2019-10-15 22:52:29 · 181 阅读 · 0 评论 -
oracle使用注意点
1.日期查询-- 注意1:to_char这里的坑,'2019-06-01'不能写成'2019-6-1',否则查询不到期待的结果-- 原因:字符串是一个一个比较SELECT * FROM jobs WHERE to_char(hire_date,'yyyy-mm-dd') = '2019-06-01';-- to_date这里没有上面to_char的问题,建议使用此种方式进行日期查询...原创 2019-10-15 21:36:44 · 235 阅读 · 0 评论 -
oracle-单行函数-数字函数
-- 四舍五入SELECT round(49.259) FROM dual; SELECT round(49.249,1) FROM dual; SELECT round(49.249,-1) FROM dual; -- 截断SELECT TRUNC(49.959) FROM dual; SELECT TRUNC(49.959,2) FROM dual; SELE...原创 2019-10-07 12:03:52 · 167 阅读 · 0 评论 -
oracle给表字段添加注释
Create Table t_date ( col_date DATE, col_timestamp TIMESTAMP, col_timestamp_7 timestamp(7), col_timestamp_with_time_zone timestamp WITH TIME ZONE, timestamp_wi...原创 2019-10-07 14:03:07 · 551 阅读 · 0 评论 -
oracle基本数据类型即测试
Create Table t_varchar ( -- varchar2为可变长度字符类型(必须指定范围0-4000) -- 虽然是变长,但是字符数如果大于指定长度会报错 col_varchar2 VARCHAR2(5), -- char为定长字符类型(必须指定范围0-2000) -- 默认长度1 col_cha...原创 2019-10-07 20:40:24 · 231 阅读 · 0 评论 -
oracle-单行函数-日期函数
-- 1.按天加SELECT sysdate,sysdate+25,sysdate-8 FROM dual;-- 2.month_between准确计算日期相差月份SELECT hire_date, trunc(SYSDATE-hire_date) as 日期相减后, (SYSDATE-hire_date)/30 as work_days2,...原创 2019-10-09 19:41:55 · 221 阅读 · 0 评论 -
oracle-单行函数-转换函数
-- *******************转换函数(显性、隐性)日期、数字、字符********************-- 隐性转换,即oracle自动转换-- number -> varchar2-- date -> varchar2-- varchar2 or char -> number-- varchar2 or char -> date--...原创 2019-10-09 20:25:31 · 160 阅读 · 0 评论 -
oracle-单行函数-字符函数
select lower('aa') from dual ;转小写select upper('AA') from dual ;转大写select initcap('aa bb cc') from dual ;单词首字母转大写-- 字符串连接SELECT CONCAT('aa','bb') FROM dual;-- 字符串截取(从1开始)SELECT SUBSTR('aabb',2...原创 2019-10-06 20:20:57 · 134 阅读 · 0 评论