私は6,00,000のレコードを持っていますが、グリッドに10レコードしか表示しません。私のストアドプロシージャが正常に動作しているとき、行番号が増加すると実行時間が増加する1〜10000 EG(500-510)の間にレコードをフェッチします。EGレコードをフェッチすると、1,00,000-1,00,010かかります実行する時間が増えましたSQLストアドプロシージャを実行するには時間がかかりますが、レコードを増やすには時間がかかります。
私はROW_NUMBER()を使用して番号行番号を取得し、データの取得に使用しました。私は6,00,000レコードを持っている
以下に示すよう
は、レコードストアドプロシージャは、SQLクエリをcreatsを得るために最適化された方法をお願いし、私は私が表示したいと彼らから10件のレコードを取得したいですグリッド内の10個のレコードのみが正常に動作しています.1〜10000 EG(500〜510)の間にレコードをフェッチした後、行数が増えると実行時間が長くなります。EGレコードをフェッチすると、1,00,000 -1000010実行に時間がかかります
ROW_NUMBER()を使用してください番号の行番号を取得し、データの取得に使用します。
SELECT FuelClaimId from
( SELECT fc.FuelClaimId,ROW_NUMBER() OVER (order by fc.FuelClaimId) AS RowNum
from FuelClaims fc
INNER JOIN Vehicles v on fc.VehicleId =v.VehicleId
INNER JOIN Drivers d on d.DriverId =v.OfficialID
INNER JOIN Departments de on de.DepartmentId =d.DepartmentId
INNER JOIN Provinces p on de.ProvinceId =p.ProvinceId
INNER JOIN FuelRates f on f.FuelRateId =fc.FuelRateId
INNER JOIN FuelClaimStatuses fs on fs.FuelClaimStatusId= fc.statusid
INNER JOIN LogsheetMonths l on l.LogsheetMonthId =f.LogsheetMonthId
Where fc.IsDeleted = 0) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN
600000 And 600010
プロシージャ定義を指定する必要があります。 – vikky