yyyyMMddxxxxxxの形式で注文番号を生成する必要があります。xxxxxxは深夜以降の注文数です。
たとえば、20120821000004は2012年8月21日の4番目の注文です。1秒あたり最大5つの注文を作成できるため、これはパフォーマンスの考慮事項です。
明らかな解決策は、次のようなことを実行して、インクリメントする最新の順序を見つけることです。
SELECT MAX (id) FROM table_name WHERE id LIKE '2012-08-21%'
しかし、それはパフォーマンスの問題にぶつかる可能性があります。
私が調査した他のオプションは、数値コンポーネントを駆動し、挿入トリガーを使用するために使用されるシーケンスを作成することです。このアプローチの問題は、1日の開始時にシーケンスをゼロにロールオーバーする安全な方法が必要なことです。これにより、シーケンスが真夜中にリセットされない場合、衝突/競合状態が発生する可能性があります。
ここでOracleを使用して気密性を高めるだけでなく、パフォーマンスを向上させるためのトリックはありますか?