01 2015 档案
摘要:需要先解决基本性能问题, 如果性能仍无法被接受, 才来考虑以下方法.物化视图 materialized view, 结果缓存 result cache, 并行处理 parallel prcess, 直接路径插入 direct-path insert, 行预取, 数组接口物化视图视图是一个虚拟表, 基...
阅读全文
摘要:在逻辑设计向物理设计转化的过程中, 必须做出四个决定1. 对于每个表, 不仅需要决定是否使用堆表, 聚簇, 索引组织表, 也需要决定是否对表进行分区2. 需要考虑是否采用冗余的访问结构, 比如索引或物化视图3. 需要决定如何实现数据约束4. 必须决定如何将数据保存在数据块中, 包括字段的顺序, 何种...
阅读全文
摘要:大小写风格所有数据库关键字和保留字均大写;缩进风格使用空格, 缩进2格(前边空两个格, 后边要与SQL语句的一致, 比如下面:)SELECT * FROM TABLE空格及换行1行只写1条语句避免将复杂的SQL语句写在同一行, 建议要在关键字和谓词除换行.相对独立的程序块之间必须加空格BEGIN ,...
阅读全文
摘要:1. SQL 基础进入查缺补漏阶段2. PL/SQL进入 practice 阶段3. Fundamental 1这部分还是比较重要architecture数据库启动与关闭步骤instance 与 parameter filecreate database 手动 和 dbca比较常用的数据字典cont...
阅读全文
摘要:程序包 Package断开了依赖链实验依赖关系: 首先不使用包-- 创建表CREATE table t (x int);-- 创建视图create view v as select * from t;-- 创建存储过程create procedure p as begin for x ...
阅读全文
摘要:语句怎样执行分析: 对提交的语句进行语法和语义检查优化: 生成一个可在数据库中用来执行语句的最佳计划行资源生成: 为会话取得最佳字画和建立执行计划(要执行的一棵树)语句执行: 完成实际执行查询的行资源生成步骤的输出.应该考虑废除 RBO 这种优化技术, 而完全使用基于成本的优化技术(CBO)这里在说...
阅读全文
摘要:前面介绍了一些 SQL*PLUS 知识, 我已经知道, 注意: autotrace 只能运行在SQL*PLUS上, 在 toad 上运行, 实际底层也是运行在 sql*plus 上.AUTOTRACEautotrace 显示计划很容易, 但是, 它很容易遗漏一些重要信息, 例如 分区信息, 绑定变量...
阅读全文
摘要:在最近的一年的职业规划咨询过程中,我明显地感觉到35岁以上人群对于职业生涯规划需求的迫切性。也正是从这些案例中,我们得以清晰地洞察到,时间点的把握对于一个人的成长如何起着决定性的作用。在我们的客户中,遇到的往往是两类较为极端的案例:一类是已经做到一定级别----至少是总监级以上,在公司具有一定地位,...
阅读全文
摘要:管理的定义管理就是准确的了解,你期望员工做什么,然后使他们用最好,最经济的方法完成. ---泰勒所谓管理是指透过他人完成业绩. ---哈佛商学院管理是通过计划,组织,领导和控制工作来协调资源,以便达到既定的目标. ---亨利,西斯克管理就是维持与改善. ---日本 今井正明管理 5 大职能控制, 定...
阅读全文
摘要:oracle 基于成本的优化器提供了3个变体:all_rows: 最短时间内完成整个语句的执行计划first_rows_N:参数 optimizer_mode : rule (基于规则)/ choose (基于成本)成本的定义: 成本表示优化器执行语句所用时间的最优估计.
阅读全文
摘要:并行执行select /*+ parallel(t1, 1) */ count(* ) from t1;select /*+ parallel(t1, 2) */ count(* ) from t1;select /*+ parallel(t1, 3) */ count(* ) from t1;se...
阅读全文
摘要:Insert直接路径法这种方法不去查找已有块中的空间, 它直接从高水位之上开始插入数据. 直接使用的是 nologging模式, 记住默认情况下通过直接路径插入进行加载的表上的索引仍然是会产生undo 和 redo. 而表的数据因为 nologging 不会产生redo 和 undo , 仅仅是对数...
阅读全文
摘要:事务的定义时一个独立的逻辑工作单元; 它由特定的一系列必须作为一个整体一起成功或失败的SQL语句组成, 每个事务都有一个很清楚的起点, 就是第一个可执行的SQL语句开始执行的时候, 以及一个确定的结束点, 当事务的工作进行了提交或回滚之后. 已经开始但还没有将其工作提交或回滚的事务是活动事务, 事务...
阅读全文
摘要:oracle基于成本的优化器(cost based optimizer, CBO) 最令人沮丧的一点就是它看上去可能会不定期的改变SQL语句的执行计划的趋势.通常很难来确定执行计划为什么改变.理解计划的不稳定性oracle优化器(CBO), 它的工作本质上就是计算出获取SQL语句指定的特定数据集的最...
阅读全文
摘要:半联结 和 反联结是 oracle 优化器能够选择用来在获取信息时应用的两个密切相关的联结方法(实际上是联结方法的选项)半联结IN 的半联结select /* using in */ department_name from hr.departments deptwhere department_i...
阅读全文
摘要:广义上区分索引分为3部分: B-树索引, 位图索引, 索引组织表位图索引适用于不经常进行更新, 插入和删除的列. 例如数据仓库中的人口统计信息的性别.一般, 选择相对来说较少的数据时, 适用索引时比较正确的. 典型的基于索引的访问路径通常包含以下3步:1) 遍历索引树并在将 SQL 语句中的谓语应用...
阅读全文
摘要:分析函数剖析分析函数具有3个基本组成部分, 分区子句, 排序子句以及开窗子句, 基本语法是:function1 (argument1, argument2, …argumentN) over ([partition-by clause] [order-by-clause][windowing-cla...
阅读全文
摘要:关于数据的问题你如何来发现数据的存储方式呢?首先, 试着像优化器一样去思考问题. 优化器需要统计信息和实例参数值来计算计划.为了得到所需的全部数据都需要哪些表?其中有表是分区的吗? 如果有, 分区是如何定义的呢?每张表中都有哪些列?每张表中可用的索引都有哪些?每张表及其中的列和索引的统计信息都是什么...
阅读全文
摘要:解释计划 与 执行计划的 区别随着可以得到解释计划输出的开发工具, 比如 toad 的普遍使用, 生成解释计划就变的相当简单. 而不简单的是得到执行计划.解释计划EXPLAIN PLAN 用来显示优化器为SQL语句所选择的执行计划. 你需要了解一件事, 当你得到了解释计划输出的时候, 你其实是得到了...
阅读全文
摘要:select /*+ gather_plan_statistics */ distinct dname, decode( d.deptno, 10, (select count(*) from scott.emp where deptno = 10), 20, (select count...
阅读全文
摘要:面向集合去思考要想成为写SQL语句的高级专家, 最困难的是一个转变就是从面相过程的思维方式转变到面相集合的思维方式.首先要停止那些一次处理一行数据的过程化步骤思维, 试着把思路转移到使用类似于 “for all”的短语上来. 例如: 如果我让你生成一个所有在公司里每个工作岗位上干了同样年数的员工的列...
阅读全文
摘要:物理结构关系到应用系统的生死存亡, 选择错误的数据结构, 性能达不到要求.1. 基本设计原则让数据库实现完整性测试示例, 使用触发器进行完整性检查, 触发器是当用户执行SQL语句时, 就会判断触发器, 而不是需要等到最后COMMIT的时候才判断, 比如 利用 scott 模式的emp来完成测试:要求...
阅读全文
摘要:编写高效 SQL 需要以下知识有关所查询内容的物理组织的知识数据库能做什么的知识, 例如: 如果你不知道跳跃扫描索引及其用途, 那么你可能会看着模式说”索引丢了”SQL 所有错综复杂的知识对目标的真实理解-问题是什么访问方法全扫描,各种类型的索引访问通过散列 或 ROWIN 方式直接访问. 类似 3...
阅读全文
摘要:写脚本时要养成结构化和系统方法的习惯.1. 注释你的代码2. 给脚本和函数加上描述性的头部信息3. 避免使用硬编码的字符常量, 用有意义的变量名来代替.4. 为变量和函数选择描述性的名字 把错误代码的代表的变量名大写 并以 E_ 开头, 例如: E_NOTFOUND=75 环境变量名用大写 函数名 ...
阅读全文