読み取りアクセス権しかなく、変更できない postgres データベース テーブルに対してクエリを実行しています。簡単に言えば、クエリを毎日実行して、数日間にわたってレコードを取得する必要があります。私は毎日行って、タイムスタンプパラメーターを物理的に変更しています。テーブルは約 4,000 万レコードで、SQL サーバーからリンク サーバーへのパススルー クエリを実行しています。
私が利用しようとしているタイムスタンプである c_stime フィールドにはインデックスがありますが、フィールドに対して関数を実行すると、その利点が失われます。ここに私の結果のいくつかがあります:
select * from p_table where c_stime >= '2013-09-24 00:00:00.0000000'
select * from p_table where c_stime >= current_date::timestamp
select * from p_table where c_stime >= current_date+ interval '0 hour'
1回目は10秒、2回目は74秒、3回目は88秒。パフォーマンスが 1 番目に近い 2 番目/3 番目のようなダイナミックなものが必要です。どんな助けでも大歓迎