国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE問答精選

2024-08-29 13:46:06
字體:
來源:轉載
供稿:網友

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 等。

   Q: 如 何 確 定 某 個 查 詢 使 用 了 哪 一 種 優 化 器?
   A: 使 用 EXPLAIN PLAN 命 令 生 成 該 查 詢 語 句 的 執 行 計 劃, 然 后 檢 查 PLAN_TABLE 表 中 POSITION 字 段, 如 果 值 為 Null, 說 明 使 用 了 Rule Based 優 化 器; 否 則 表 明 使 用 了 Cost B ased 優 化 器。 例 如:
   SELECT decode(nvl(position,-1),-1, 'RBO','CBO')
   FROM plan_table
   WHERE id=0;

   Q: 我 的 查 詢 上 周 的 性 能 很 好, 為 什 么 現 在 查 詢 速 度 很 慢?
   A: 這 是 由 于 執 行 計 劃 被 改 變 而 造 成 的, 下 列 因 素 將 會 改 變 一 個 執 行 計 劃:
   1) INIT<sid>.ORA 文 件 中 的 參 數 OPTIMIZER_MODE 被 改 變 2) 表 上 定 義 或 改 變 了 并 行 查 詢 度 3) 使 用 ANALYZE 命 令 重 新 分 析 了 表, 而 且 使 用 了 ESTIMATE 方 式, 因 這 種 方 式 選 擇 不 同 的 百 分 比 可 產 生 不 同 的 分 析 結 果。

   4) DB_FILE_MULTIBLOCK_READ_COUNT 參 數 被 修 改。
   5) SORT_AREA_SIZE 參 數 被 修 改

   Q: 為 什 么 我 的 執 行 計 劃 不 是 最 好 的?
   A: CBO 是 依 賴 表 的 一 些 統 計 信 息 來 選 擇 出 最 低 成 本 的 執 行 計 劃, 當 這 些 統 計 信 息 不 準 確 時, 產 生 的 計 劃 便 可 能 不 是 最 佳 的。 因 而 應 使 用 ANALYZE 命 令 及 時 對 表 進 行 分 析 統 計。

   Q: 當 使 用 ESTIMATE 方 式 對 表 進 行 分 析 時, 選 用 什 么 百 分 比 最 好?
   A: 經 測 試 證 明, 使 用 5% 的 的 比 例 較 好。 即 提 高 了 分 析 效 率, 又 保 證 分 析 結 果 的 準 確 性。

   Q: 如 何 在 Oracle8 數 據 庫 中 創 建 Partition Table?
   A: 使 用 CREATE TABLE 命 令, 并 指 定 Partition Key 和 每 個 Partition 的 分 區 范 圍, Partition 名 為 可 選 項, 如 未 指 定, 系 統 將 自 動 產 生 Partition 名。 例 如: CREATE TABLE emp
   (EMPNO NUMBER(5),
   ...)
   PARTITION BY RANGE(EMPNO),
   emp_p1 VALUES LESS THAN (2000),
   emp_p2 VALUES LESS THAN (4000)
   emp_p3 VALUES LESS THAN (MAXVALUE);

   Q: Partition Table 有 何 限 制?
   A: 1) 數 據 類 型 限 制:
   Partition Table 不 能 包 含 LONG、 LONG RAW、 LOB 及 OBJECT 類 型 的 字 段 2) Cluster 不 能 被 分 區 3) Bitmap 索 引: Bitmap 索 引 必 須 是 LOCAL 索 引, 不 能 是 GLOBAL 索 引 4) 優 化 器:
   Oracle8 中 Cost Based 優 化 器 支 持 Partitions, 而 Rule Based 優 化 器 對 Partitions 不 敏 感, 無 法 通 過 Partitions 獲 得 性 能 的 提 高。
   5) Partition Tables 不 能 跨 多 個 數 據 庫, 所 有 的 Partition 必 須 存 在 于 一 個 數 據 庫 中


   Q: 如 何 建 立 一 個 與 現 存 數 據 庫 相 同, 但 不 包 含 數 據 的 空 庫?
   A: 對 全 庫 作 Export 或 Import 時, 使 用 參 數 ROWS=Y
   例 如: exp system/manager full=Y rows=N file=full.dmp
   imp system/manager full=Y rows=N file=full.dmp

   Q: 當 Exporting PRocedures 和 Packages 時, 是 否 會 改 變 其 時 間 標 簽 (Timestamp) ?
   A: 不 改 變, 這 是 為 避 免 不 必 要 的 重 編 譯。

   Q: Exp 的 參 數 VOLSIZE 能 否 用 于 所 有 的 平 臺?
   A: VOLSIZE 只 能 用 于 UNIX 系 統, 將 數 據 exporting 至 外 部 介 質 上(如 磁 帶)

   Q: 如 何 通 過 SQL*PLUS 往 表 中 插 入 " ' ", 如 往 表 中 插 入 i'm.
   A: 在 SQL*PLUS 中 , 我 們 可 以 用 chr(39) 來 表 示 " ' ", 例 如 :
   sql>create table test (col1 varchar2(10));
   sql>insert into test values('i'chr(39)'m');
   sql>select * from test;
   col1
   -----
   i'm

   Q: 在 win95 或 windows NT 上 運 行 oracle Net8 Assistant 或 Net8 Easy Configuration 時 報 錯 "unhandled exception error in java.exe"
   A:oracle Net8 Assistant 或 Net8 Easy Configuration 調 用 了 Java, 而  Java 在 win95 或 windows NT 上 運 行 對 系 統 的 分 辨 率 和 顏 色 都 有 要 求 . 應 把 系 統 的 分 辨 率 調 到 大 于 640x480, 把 系 統 的 顏 色 調 到 大 于 256 色 但 不 能 設 置 成 true color.

   Q: 安 裝 oracle 8 for windows NT 4.0 需 要 NT 的 那 種 service pack?
   A: 安 裝 oracle 8 for windows NT 4.0 需 要 NT 的 service pack 3.

   QORACLE問答精選(圖一)elphi3.0 是 否 支 持 oracle8?

   A:Delphi3.0 只 有 oracle 7 的 driver, 所 以 不 支 持 oracle 8.
   Delphi4.0.x 有 oracle 8 的 driver, 所 以 支 持 oracle 8.

   Q: 怎 樣 在 oracle 7 和 oracle 8 之 間 export/import 數 據 ?
   A: 必 須 先 在 oracle 8 數 據 庫 上 以 internal 或 sys 用 戶 運 行 catexp7.sql
   svrmgr>connect internal
   svrmgr>@?/rdbms/admin/catexp7.sql

   Q: 怎 樣 為 遠 程 用 戶 設 置 "internal" 的 口 令 ?
   A: 先 在 數 據 庫 端 的 init<sid>.ora 文 件 中 設 置
   remote_login_passWordfile=exclusive
   并 且 為 oracle owner 設 置 環 境 變 量
   ORA_<SID>_PWFILE=orapw<sid>.pwd
   然 后 以 oracle owner 運 行 以 下 命 令
   $cd $ORACLE_HOME/dbs
   $orapwd file=orapw<sid>.pwd password=<passwd> entries=5

   Q: 如 何 手 工 安 裝 sqlplus 的 help facility?
   A: 以 oracle 用 戶 運 行 以 下 命 令
   $cd $ORACLE_HOME/bin
   $SYSTEM_PASS=system/manager;export SYSTEM_PASS
   $helpins

   Q: 如 何 查 出 前 臺 正 在 發 出 的 sql 語 句?
   A: 先 查 出 正 在 運 行 的 前 臺 程 序 的 sid:
   sql>select sid,serial#,username,program
   from v$session
   where status='ACTIVE';
   然 后 根 據 上 面 得 到 的 sid, 可 查 出 正 在 運 行 的 前 臺 程 序 發 出 的 sql 語 句 :
   sql>select user_name,sql_text
   from v$open_cursor
   where sid=xx;

   Q: 在 oracle 8 中 如 何 使 用 shared library 來 編 譯 pro*c 程 序 ?
   A: 首 先 以 oracle owner 創 建 shared library
   $cd $ORACLE_HOME/rdbms/lib
   $make -f ins_rdbms.mk client_sharedlib
   然 后 設 置 LIBPATH 環 境 變 量 ( 有 的 平 臺 用 LD_LIBRARY_PATH, 請 參 見 手 冊 ORACLE問答精選(圖二):

   $LIBPATH=$ORACLE_HOME/lib;export LIBPATH
   最 后 編 譯 你 的 pro*c 程 序 :
   $make -f demo_proc.mk build OBJS=yourprog.o EXE=yourprog

   Q:  在 數 據 庫 一 級 設 置 SQL Trace
   A: 在 init.ora 中 加 入 參 數 sql_trace=true. 然 后 重 新 啟 動 數 據 庫。

   Q:  在 SQL*PLUS 中 對 某 一 session 設 置 SQL trace.
   A: sql*plus>alter session set sql_trace true;
   在 產 生 Trace 之 后, 使 用 如 下 命 令 關 閉 Trace.
   sql*plus>alter session set sql_trace false;3:

   Q: 在 PL/SQL 中 設 置 和 關 閉 SQL Trace.
   A: dbms_session.set_sql_trace(true);
   dbms_session.set_sql_trace(false);
   如 果 你 不 能 發 現 這 個 package, 首 先 用 SYS 用 戶 執 行
   dbmsutil.sql 這 個 腳 本。

   Q: 怎 樣 設 置 redo log 文 件 的 大 小。
   A: 設 置 redo log 文 件 的 原 則 就 是 要 保 證 30 分 鐘 之 內 進 行 log switch.
   log switch 的 信 息 被 記 錄 在 alertSID.log 中。
   -------------------------------------------------------
   Mon May 5 13:53:31 1997
   Thread 1 advanced to log sequence 68
   Current log#2 seq# 68 mem# 0: /u05/dbs/log2ween.dbf -------------------------------------------------------
  
   如 果 兩 次 switch 的 時 間 是 10 分 鐘, 你 需 要 增 加 redo log 文 件
   到 三 倍 的 尺 寸。
   如 果 兩 次 switch 的 時 間 是 15 分 鐘, 你 需 要 增 加 redo log 文 件
   到 兩 倍 的 尺 寸。
   如 果 兩 次 switch 的 時 間 超 過 30 分 鐘, 你 不 需 要 需 要 增 加 redo
   log 文 件 的 尺 寸。
  
   同 時 設 置 CHECK_POINT_INTERVAL 大 于 redo log 文 件 的 大 小。

   Q:  怎 樣 檢 查 是 否 一 個 數 據 庫 用 戶 被 授 予 sysdba ,sysoper 的 權 限。

   A: 注 冊 到 sys 用 戶 下, 查 詢 數 據 字 典 v$pwfilw_users.

   Q:  你 是 否 可 以 將 with grant option 的 object 權 限 授 給 一 個 role.
   A: 不 能, 這 個 被 授 權 者 必 須 是 一 個 user 或 者 public.

   Q: with admin option 的 系 統 授 權 是 否 是 hierarchical
   A: 不 是, 所 以 revoke grant with admin option 并 不 cascade.
   如: user A grant select any table to user B with admin option.
   user B grant select sny table to user C with admin option.
   user A revoke select any table from user B .
   此 時 user C 仍 然 具 有 select any table with admin option.

    Q:被 授 予 的 with grant option 的 object 的 權 限 是 否 被 收 回, 如 果 授 權 者 的 權 限 已 經 被 收 回。
   A: 是 的, object 的 with grant option 的 權 限 是 hierarchical.

   Q: 在 用 create user 命 令 創 建 了 一 個 用 戶 之 后, 那 些 表 可 以 用 來 查 看 這 個 新 用 戶 的 基 本 信 息。
   A: 可 以 查 看 表 dba_users,dba_ts_quotas.

   Q: 是 否 可 以 用 alter database datafaile 'file_name' offline drop
   的 命 令 來 刪 除 一 個 表 空 間 中 的 某 個 數 據 文 件。
   A: 這 個 命 令 并 非 是 一 個 常 規 的 對 數 據 庫 的 管 理 命 令, 僅 僅 當 數 據 庫 出 現 異 常, 或 某 個 文 件 丟 失 時, 可 以 用 他 來 強 制 將 這 一 文 件 的 記 錄 從 數 據 字 典 中 刪 除, 以 達 到 open 數 據 庫 的 目 的, 但 是 此 后, 你 必 須 備 份 此 表 空 間 的 數 據, 然 后 重 新 創 建 該 表 空 間。
  

   Q:  如 何 移 動 數 據 文 件 的 位 置?

   A:1. 正 常 關 閉 數 據 庫;
   2. 拷 貝 數 據 文 件 到 新 位 置;
   $cp $ORACLE_HOME/dbs/dbsNEW.dbf /usr3/oracle/dbsNEW.dbf
   3.svrmgrl
   connect internal;
   startup mount;
   alter database rename file '<$ORACLE_HOME>/dbs/dbsNEW.dbf'
   to '/usr3/oracle/dbsNEW.dbf';
   alter database open.
  
   Q:  如 何 移 動 LOG 文 件 的 位 置?
   A: 可 以 先 添 加 新 的 LOG 文 件, 再 刪 除 原 來 的 LOG 文 件。
   svrmgrl>connect internal;
   alter database add logfile '<$ORACLE_HOME>/usr3/oracle/logNEW.dba';
   alter database drop logfile '<$ORACLE_HOME>/dbs/logNEW.dbf';
  
   Q:  能 否 把 數 據 文 件 一 部 分 放 在 RAW DEVICE 上, 另 一 部 分 放 在 普 通 文 件 系 統 上?
   A: 可 以, ORACLE 把 它 們 同 等 對 待, 把 數 據 文 件 放 在 RAW DEVICE 上 有 時 可 以 提 高 系 統 的 性 能。
  
   Q:  能 否 把 多 個 數 據 文 件 放 在 同 一 個 RAW DEVICE 上? 在 CREATE TABLESPACE 時, 如 何 指 定 RAW DEVICE 的 大 小?
   A: 一 個 RAW DEVICE 只 能 作 為 一 個 數 據 文 件 使 用, 如 果 你 有 一 個 較 大 的 RAW DEVICE, 需 要 把 它 用 于 不 同 的 表 空 間, 你 可 以 把 它 再 分 區。 在 使 用 RAW DEVICE 創 建 表 空 間 時, 你 只 能 使 用 RAW DEVICE 的 95% 左 右 的 空 間, 其 余 空 間 用 于 記 錄 文 件 頭 的 信 息。
  
   Q:  如 何 知 道 我 已 經 安 裝 了 哪 種 NETWORK DRIVER?
   A: 可 以 用 'nm' 命 令 檢 查, 例 如, TCP/ip DRIVER 的 符 號 名 為 'nttini', 要 檢 查 Oracle 是 否 鏈 接 了 該 符 號, 可 以 利 用 下 列 命 令:
   nm oracle  grep nttini 如 果 nttini 存 在, 表 示 rdbms 已 經 鏈 接 了 TCP/IP DRIVER.


   Q:  如 何 檢 查 已 安 裝 的 SQL*NET 的 版 本?
   A: 可 以 在 ?/orainst 目 錄 下 使 用 'inspdver' 命 令 檢 查。
   $ inspdver  grep SQL*Net
   2.3.4.0.0 SQL*Net (V2)

   Q:  如 何 打 開 Intelligent Agent Tracing?
   A: 在 7.3.2.x, 編 輯 SNMP.ORA 文 件, 在 7.3.3.x 及 以 上 版 本 編 輯 SNMP_RW.ORA 文 件, 分 別 加 入 以 下 內 容:
   NMI.TRACE_LEVEL=16
   NMI.TRACE_MASK=(106)
   NMI.TRACE_DirectorY=<actual path to oracle_home/network/trace>

   Q: SNAPSHOT 不 自 動 refresh 怎 么 辦?
   A: 我 們 可 以 從 以 下 幾 個 方 面 查 找 原 因:
   1. 檢 查 JOB_QUEUE_PROCESSES 參 數;
   2. 檢 查 DBA_JOBS, 確 認 JOB 的 狀 態 不 是 broken;
   3. 檢 查 DBA_JOBS_RUNNING, 看 refresh job 是 否 正 在 運 行;
   4. 檢 查 db link 和 NET 是 否 正 常。

   Q:  如 何 清 除 replicated 環 境 ?
   A:1. 在 Master Definition site, 執 行 dbms_repcat.remove_master_databases();
   2. 在 Master site 執 行 dbms_repcat.drop_master_repgroup。

   Q:  如 何 確 定 snapshot 是 Read Only 或 Updatable?
   A: 可 以 運 行 下 列 語 句, 確 定 snapshot 是 Read Only 或 Updatable:
   SQL> select name, updatable from user_snapshots;
   Example: --------
   SQL> select name, updatable from user_snapshots;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 观塘区| 榆林市| 安多县| 海宁市| 德州市| 兴化市| 邛崃市| 湘西| 将乐县| 内丘县| 孝昌县| 绥宁县| 博白县| 涪陵区| 泉州市| 孟连| 英吉沙县| 巍山| 花莲市| 炎陵县| 武强县| 自治县| 洞口县| 库车县| 丹阳市| 曲阜市| 萝北县| 肥东县| 秦皇岛市| 木里| 江永县| 利辛县| 莲花县| 文安县| 松桃| 临清市| 谷城县| 阿鲁科尔沁旗| 习水县| 武平县| 张家川|