select autoid from (SELECT ROW_NUMBER() OVER (ORDER
BY MYTABLE.DETECTEDUTC DESC) as rownum, autoId from
MYTABLE where MYTABLE.guid in (..guids..)) as tab1 where rownum >=1000 and rownum < 1020
現在、数百万のレコードが含まれている可能性のあるテーブルMYTABLEがあります。 上記のコードではページ単位のデータを取得するためにSQLクエリを使用していますが、結果が得られるまではうまく動作しますが、結果が0になると何時間もハングします。 また、上記のクエリの実行中にSQL ServerがシステムRAMを消費し、レコードを返さないSQL Serverが開始されます。保存のための入力としてMS-SQLSERVER - ROW_NUMBERを使用したSQLクエリ。クエリの結果が0で長時間掛かります。
(:関係なく、クエリ内の問題の私は大抵、ページングを達成する方法を提示しています
select autoid from (SELECT ROW_NUMBER() OVER (ORDER
BY MYTABLE.DETECTEDUTC DESC) as rownum, autoId from
MYTABLE where MYTABLE.guid in(..guids..)) as tab1
どちらのクエリでどのような結果が返ってくるのか、私は理解できません。 'EVENTS.guid = NEWID()'の条件は常に 'false'と評価されるべきです。 –
クエリーを変更して結果がないかどうかを確認します。scenerio – dadua
はクエリーを元のクエリーに変更しました。 – dadua