Oracle Initialization Parameters:DEFERRED
官方文档的说明: DEFERRED_SEGMENT_CREATION Property Description Parameter typeBoolean Default value true Modifiable ALTER SESSION, ALTER SYSTEM Range of valuestrue | false Basic No DEFERRED_SEGMENT_CREATION specifies the semantics of defer
官方文档的说明:
DEFERRED_SEGMENT_CREATION
Property Description
Parameter typeBoolean
Default value true
Modifiable ALTER SESSION, ALTER SYSTEM
Range of valuestrue | false
Basic No
DEFERRED_SEGMENT_CREATION specifies the semantics of deferred segment creation. If set to true, then segments for tables and their dependent objects (LOBs, indexes) will not be created until the first row is inserted into the table.
Before creating a set of tables, if it is known that a significant number of them will not be populated, then consider setting this parameter to true. This saves disk space and minimizes install time.
DEFERRED_SEGMENT_CREATION具体指segment延迟创建,如果DEFERRED_SEGMENT_CREATION的值时true,则当table创建时,该table以及依赖它的lob,index的segment都不会创建,知道第一行记录插入到该table。DEFERRED_SEGMENT_CREATION 参数从11.2.0.1引进,默认值为true;如果要使其恢复老版本功能,设置该参数为false.
DEFERRED_SEGMENT_CREATION效果验证:
SQL>select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production SQL>show parameter DEFERRED_SEGMENT_CREATION NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ deferred_segment_creation boolean TRUE SQL>create table t_hh (id number,name varchar2(10)); Table created. SQL>create index ind_t_hh_id on t_hh(id); Index created. SQL>Select segment_name,segment_type from user_segments where segment_name in ('T_HH','IND_T_HH_ID'); no rows selected SQL>insert into t_hh values(998,'hengheng'); 1 row created. SQL>Select segment_name,segment_type from user_segments where segment_name in ('T_HH','IND_T_HH_ID'); SEGMENT_NAME SEGMENT_TYPE --------------------------------------------------------------------------------- ------------------ T_HH TABLE IND_T_HH_ID INDEX
这里我们可以看到,当insert发生的时候,数据库会给该表创建segment并分配extent,无论该insert 操作是commit or rollback。but,deferred_segment_creation 参数对sys,system用户是无效的,下面我们来验证下:
SQL>show user USER is "SYS" SQL>create table t_sys_hh (id number,name varchar2(10)); Table created. Elapsed: 00:00:00.17 SQL>Select segment_name,segment_type from dba_segments where segment_name = 'T_SYS_HH'; SEGMENT_NAME SEGMENT_TYPE --------------------------------------------------------------------------------- ------------------ T_SYS_HH TABLE
对于古老的导出工具exp来说,我们无法导出没有segment的表,故在exp之前需要给表分配extent,可以用:alter table tablename allocate extent;

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Oracle Tablespaceサイズを照会するには、次の手順に従ってください。クエリを実行して、TableSpace名を決定します。DBA_TABLESPACesからTableSpace_Nameを選択します。クエリを実行してテーブルスペースのサイズをクエリします:sum(bytes)をtotal_size、sum(bytes_free)asavail_space、sum(bytes) - sum(bytes_free)as sum(bytes_free)as dba_data_files from tablespace_

Oracle View暗号化により、ビュー内のデータを暗号化でき、それにより機密情報のセキュリティが強化されます。手順には以下が含まれます。1)マスター暗号化キー(MEK)の作成。 2)暗号化されたビューを作成し、暗号化されるビューとMEKを指定します。 3)暗号化されたビューにアクセスすることをユーザーに許可します。暗号化されたビューがどのように機能するか:ユーザーが暗号化されたビューを求めてクエリをするとき、OracleはMEKを使用してデータを復号化し、認定ユーザーのみが読み取り可能なデータにアクセスできるようにします。

Oracleでインスタンス名を表示するには3つの方法があります。「sqlplus」と「v $ instanceからselect instance_name;」を使用します。」コマンドラインのコマンド。 「show instance_name;」を使用しますSQL*Plusのコマンド。オペレーティングシステムのタスクマネージャー、Oracle Enterprise Manager、またはオペレーティングシステムを介して、環境変数(LinuxのOracle_Sid)を確認してください。

Oracleインストール障害のためのアンインストールメソッド:Oracleサービスを閉じ、Oracleプログラムファイルとレジストリキーを削除し、Oracle環境変数をアンインストールし、コンピューターを再起動します。アンインストールが失敗した場合、Oracle Universal Uninstallツールを使用して手動でアンインストールできます。

Oracle Cursorの閉鎖問題を解決する方法には、次のものが含まれます。 Scopeが終了した後に自動的に閉じるように、for update句のカーソルを宣言します。使用句のカーソルを宣言して、関連するPL/SQL変数が閉じられたときに自動的に閉じるようにします。例外処理を使用して、例外の状況でカーソルが閉じていることを確認します。接続プールを使用して、カーソルを自動的に閉じます。自動送信を無効にし、カーソルの閉鎖を遅延させます。

Oracle無効な数値誤差は、データ型の不一致、数値オーバーフロー、データ変換エラー、またはデータの破損によって引き起こされる場合があります。トラブルシューティング手順には、データ型のチェック、デジタルオーバーフローの検出、データ変換のチェック、データの破損のチェック、nls_numeric_charactersパラメーターの構成、データ検証ロギングの有効化など、他の可能なソリューションの調査が含まれます。

SQLステートメントは、Oracleの動的SQLを使用して、ランタイム入力に基づいて作成および実行できます。手順には、次のものが含まれます。動的に生成されたSQLステートメントを保存するための空の文字列変数を準備します。 executeを即座に使用するか、ステートメントを準備して、動的なSQLステートメントをコンパイルおよび実行します。バインド変数を使用して、ユーザー入力またはその他の動的値を動的SQLに渡します。実行するか、実行するか、動的SQLステートメントを実行します。

Oracleでは、forループループは動的にカーソルを作成できます。手順は次のとおりです。1。カーソルタイプを定義します。 2。ループを作成します。 3.カーソルを動的に作成します。 4。カーソルを実行します。 5。カーソルを閉じます。例:カーソルをサイクルごとに作成して、上位10人の従業員の名前と給与を表示できます。
