ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> recover database
完成介质恢复。
SQL> alter database open
2 ;
数据库已更改。
A. TNS-12500 on Microsoft Windows NT
B. Intermittent TNS-12500 Errors on Microsoft Windows NT
或者:
shell> mysqld_safe --character-set-server=utf8
1. Unix操作系统
2. IBM System R-1983年以DB2的形式进入商业市场
3.基因排序软件-美国基因组研究所(IGR)
4. IBM System 360系统
5. Java语言
-
Oracle客户端的版本和服务器的版本不一致,通常是客户端版本太老
-
在Oracle8使用了Timestamp类型,Oracle 8 中还不存在 Timestamp 这样的数据类型
- 数据库集群
- 缓存
- 负载均衡/加速
- 分布式存储
1. 选用适合的ORACLE优化器
ORACLE的优化器共有3种:
a. RULE (基于规则)
b. COST (基于成本)
c. CHOOSE (选择性)
设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖。
Q: 如 何 使 用 Cost Based 优 化 器 优 化 查 询 操 作?
A: Oracle Server 提 供 了 基 于 成 本(Cost Based) 和 基 于 规 则(Rule Based) 两 种 优 化器, 简 称 为 CBO 和 RBO, 用 于 确 定 查 询 操 作 的 执 行 计 划。 Cost Based 优 化 器 将 计 算 各种 执 行 计 划 的 开 销, 然 后 选 出 最 低 成 本 的 执 行 计 划。 可 使 用 下 列 方 法 选 择 使 用 CBO:
方 法 1: 在 INIT<sid>.ORA 文 件 中 设 置 参 数 OPTIMIZER_MODE=choose
方 法 2: 在 Session 级 设 置 OPTIMIZER_GOAL=FIRST_ROWS 或 ALL_ROWS 例 如: alter session set optimizer_goal=first_rows;
方 法 3: 在 查 询 语 句 中 使 用 Hint, 包 括 CHOOSE,ALL_ROWS,FIRST_ROWS 等。
查询V$SESSION视图来看一下会话正在等待什么。(请注意过滤掉了所有空闲事件。)
select sid, username, event, blocking_session,
seconds_in_wait, wait_time
from v$session where state in ('WAITING')
and wait_class != 'Idle';
下面以垂直格式给出输出结果。
SID : 270
USERNAME : BILL
EVENT : enq: TX - row lock contention
BLOCKING_SESSION : 254
SECONDS_IN_WAIT : 83
WAIT_TIME : 0
看到这些信息,John立刻得出结论,Bill的SID 270会话正在等待一个表上的锁,而这个锁正由254会话(BLOCKING_SESSION)占用。
但是John想知道哪条SQL语句引起了这个锁的占用。他可以通过连接V$SESSION和V$SQL视图执行下面的查询很容易地找到答案:
select sid, sql_text
from v$session s, v$sql q
where sid in (254,270)
and (
q.sql_id = s.sql_id or
q.sql_id = s.prev_sql_id);