VARCHAR2(1 BYTE)を使用することは、CHAR(1 BYTE)を使用するよりも効率が悪いですか?
フィールドに1文字より長い値を入力したことがない場合、VARCHAR2(2000 BYTE)を使用する方がCHAR(1 BYTE)を使用するよりも効率が悪くなりますか?
**効率的とは、時間(検索)と空間(保存)の両方で効率的であることを意味します。
文字セットによっては、CHAR(1 BYTE) は特定の文字を格納できない場合があるため、マルチバイト文字について話している場合、VARCHAR2(2000 BYTE) と CHAR(1 BYTE) の間に違いがある場合があります。
より一般的に言えば、SQL では (PL/SQL ルールは少し異なります)、VARCHAR2(2000 BYTE) は CHAR(1 BYTE) より多くのストレージを消費することはありません。効率的」は、主にストレージ効率に変換されます)。VARCHAR2(2000 BYTE) を使用すると、クライアント アプリケーションはフィールドの内容を保持するために 2000 バイトのバッファーを割り当てることがよくあります。これは、クライアント アプリケーションが実際のデータ サイズを事前に知らないためです。 RAMの量。ただし、それは実際の問題につながる場合とそうでない場合があります。ほとんどのクライアント アプリケーションは RAM に悪影響を及ぼさず、ほとんどの結果セットは何百万行もクライアントに返しません。
特に PL/SQL ルールに関して、より詳細に説明するAskTom スレッドがあります。