sql >> データベース >  >> RDS >> Oracle

日時データを数値として保存する

    日付を日付として保存すると、はるかに良いでしょう。文字列ではなく数値として保存すると、さまざまな問題が発生します。

    文字列として保存された日付に完全に固執している場合、列のインデックスを使用できるようにするには、パラメータとして使用している日付を適切な形式の文字列として変換し、次の事実に依存する必要があります。その特定の形式での文字列の並べ替えは、実際の日付の予想される並べ替え順序と一致します。文字列を日付または数値と比較すると、暗黙的なデータ型変換が発生します。これは、インデックスを使用できず、最悪の場合、誤った結果やエラーを生成するため、せいぜいパフォーマンスの問題につながります。

    データ型の変換を回避すると仮定すると、間違ったデータ型を使用すると、オプティマイザーがカーディナリティを推定するのが非常に困難になるという事実から、パフォーマンスの問題が発生する可能性があります。オラクルは、たとえば、2012年1月1日から2013年1月1日までの間に365日(または8760時間または525600分)があることを知っています。一方、「20120101000000」と「20130101000000」の間には数十億の可能な文字列があります。これにより、オプティマイザーが必要なときにインデックスを使用しない(またはその逆)、間違った種類の結合を使用するなどの原因となる可能性があります。



    1. OracleSQLクエリ-2つの日付の間のレコードを生成します

    2. PHP Mcryptで暗号化し、MySQL aes_decryptで復号化しますか?

    3. 複数のユーザーにFiresbase通知を送信する

    4. Oracle SQL SELECT DATEfromDATETIMEフィールド