アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。

INDEXを設定せずに、検索キーを設定するのですが、以下のデータ型によって検索速度の違いはあるのでしょうか?

CHAR(1)
VARCHAR2(1)
NUMBER(1)

また、内部でどのような動きをしているのか、説明が載っているようなHPがありましたら、併せてお教え頂けるとありがたいと思っております。
ご存知な方いらっしゃいましたら、宜しくご教授お願いします。

A 回答 (8件)

CHARとVARCHAR2では、CHARの方が速いということで積極的にCHARを利用する方もいらっしゃいますが、Oracle社はCHARの利用をあまり推奨していません。



また、検索でこれらのデータ型の違いがパフォーマンスに大きく影響を与えることもありません。

結局のところ、扱いやすいデータ型を使うのがよいのではないでしょうか。
    • good
    • 0

#4ですが..



確認しました。
どうも記憶違いしてたみたいですね。
varchar2だけを特別視する必要はなかったです。

勉強になりました。m(__)m
    • good
    • 0

#5です。


誤) 250Byte以下であればすべての型において1Byte,251Byteを超えると3Byteを
使用していると認識しています。


正)250Byte以下であればすべての型において1Byte,251Byte以上だと3Byteを
使用していると認識しています。

です。
    • good
    • 0

ご指摘を受けて、確認いたしましたが


VARCHAR(1)は 1Byteかと思います。

項目長はカラムヘッダが管理しており、データに含まれません。
250Byte以下であればすべての型において1Byte,251Byteを超えると3Byteを
使用していると認識しています。

参考URLにてご確認ください。

参考URL:http://otndnld.oracle.co.jp/skillup/oracle9i/3_1 …
    • good
    • 0

#2です。



#1&#3どの宛

NUBERの部分、当方の記憶違いです。(DATE型と取り違い)

NUMBER型 = (1 + 切捨て(格納時の桁数/2)) + 1

が正しいようです。(number(1)の場合、2バイト)

また、VARCHAR2(1)については、2バイトであっているハズです。
VARCHAR2は、可変バイトで記憶する仕組みのため、レングスを必ず管理します。
レングス部も、格納するデータ値で、1~2バイトの範囲で可変です。
VARCHAR2(1) の場合、1バイトのレングス部と1バイトのデータ値を
管理するので、記憶域として、2バイト消費します。
    • good
    • 0

#2さんへ


私の認識と異なるので、一応

CHAR(1) = 1バイト (CHAR(1 CHAR)では、また異なります)
VARCHAR2(1) = 1バイト
NUMBER(1) = 2バイト
(※ 負なら3バイトだが、上記2種は表現自体が不可能を考慮)
となると思います。

またレコード毎には、レコードヘッダ、列ヘッダが必要(~6Byte)となります。
そのためデータ自体の1Byteの差によるレスポンスへのインパクトは、ほとんどありません。

ちなみに、手元の覚書では
NUMBER(n) のサイズは CEIL (n/ 2)+1 +1 ( 最後の +1は負の場合のみ)
で桁数により可変となると思います。(間違っているかも)
    • good
    • 0

データ属性による記憶域の消費量は、


CHAR(1) = 1バイト
VARCHAR2(1) = 2バイト
NUMBER(1) = 7バイト
だったと記憶してます。

なので、1回の物理アクセスで取得できる量が多いのは
CHAR(1)である可能性が高いです。

ですが、実際の利用において、大きな差は生まれないと
思います。
    • good
    • 0

インデックスを使用しない検索は「テーブルフルアクセス」


になります。

テーブルフルアクセスは、検索項目の大きさよりも1レコードの大きさに左右されます。
ですから、通常のレベルでは、3つとタイプで差はでません。

オラクルの動作を知りたいのであれば

マニュアル「パフォーマンス・チューニング・ガイド」
・EXPLAIN PLAN の使用方法
を読んで実際のSQLで解析すると、理解できるようになると思います。

http://www.sint.co.jp/siob/
このあたりのツールを使用すると、実行計画も容易に見ることができます。

参考URL:http://otn.oracle.co.jp/document/products/oracle …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す