PDA

View Full Version : سرعت نمایش اطلاعات در grid



ayani2002
چهارشنبه 06 آذر 1387, 14:32 عصر
من یک پروژه بزرگ دارم حجم اطلاعات در برخی صفحات خیلی زیاد است (تعداد سطرهای دریافتی از database زیاد است) و گاهی چند ثانیه طول می کشد تا اطلاعات در grid نمایش داده شود و برای رفع مشکل و سریع تر شدن بایدچه کاری انجام بدهم.

hassanf
چهارشنبه 06 آذر 1387, 15:32 عصر
این که شما کل اطلاعات رو بگیری و نمایش بدی روش معقولی نیست. شما باید Pagging رو تو سطح DataBase انجام بدی .

ayani2002
یک شنبه 10 آذر 1387, 07:31 صبح
اگر منظورتون Paging grid است که باز هم کند است چون همه اطلاعات را یک جا از database می آورد ولی اگر منظورتون اینکه همه اطلاعات از database نیاید چطوری این کار را بکنم.متشکرم

hassanf
یک شنبه 10 آذر 1387, 08:00 صبح
مثلا اینجوری :


CREATE PROCEDURE dbo.GetDocuments
@PageSize int,
@PageNumber int
AS
DECLARE @Ignore int
DECLARE @LastID int

IF @PageNumber > 1
BEGIN
/* For pages > 1 compute how many records to ignore,
set ROWCOUNT and SELECT ID into @LastID */
SET @Ignore = @PageSize *(@PageNumber - 1)
SET ROWCOUNT @Ignore
SELECT @LastID = ID
FROM Documents
ORDERBY ID DESC
END
ELSE
BEGIN
/* For page #1 just set rowcount to pagesize */
SET ROWCOUNT @PageSize
END

/* Set rowcount to @PageSize and
SELECT page for output (note the WHERE clause) */
SET ROWCOUNT @PageSize
SELECT*
FROM Documents
WHERE ID < @LastID
ORDERBY ID DESC
SET ROWCOUNT 0
GO

milade
یک شنبه 10 آذر 1387, 12:26 عصر
سلام
اضافه می کنم»
برا اینکه گریدویو و کنترلهای اماده بیشتر از ادابتور برا پر کردن استفاده می کنن و ما دسترسی به اتصالات اون نداریم این باعث میشه که روی سرور خیلی فشار بیاد (و بترکه:قهقهه:)!
اما پیشنهاد می کنم که خودتون لیست رو پر کنید یعنی کارا رو بکنید و اونو توی گرید نمایش بدید تا حداقل اتصالات دست خودتون باشه
موفق باشید