שליפת רשומות

koko19

New member
שליפת רשומות

אני משתמש ב ASP כדי להציג נתונים מתוך מסד נתונים INFORMIX\SQL\ORACLE בטבלאות ישנם עשרות ומאות אלפי רשומות. שליפת הנתונים לוקחת המון זמן וגורמת לקריסת האתר מידי פעם. איך אוכל להציג את הנתונים לפי חלוקה לדפים כאשר השליפה מהטבלאות נעשית בתחומים מוגדרים של מספר רשומות. למשל 20 רשומות לדף וכאשר ניגשים לדף מספר 2 את ה 20 הרשומות הבאות.
 

deja

New member
יש מספר

אפשרויות. אם אין לך בעיה להשאיר connection פתוח, תוכל להשתמש במנגון cache של ADO או ב-Package של Oracle (תוכל להוריד מהאתר). אם אתה סוגר מיד connection אחרי כל פניה לDatabase תוכל לבנות מנגון paging משלך. אתה יכול ליצור טבלה עם 3 שדות: requestID, line, rowid. requestID יהיה מספר אקראי (אפשר ליצור בעזרת sequence) שהמשתמש יקבל עבור השאילתה שלו. line יהיה מספר השורה ו-rowid יכיל את ה-rowid של הנתונים מהטבלה המקורית (על מנת לחסוך זמן ב-insert לטבלת הדפדוף עדיף לבצע insert ל-rowid בלבד ולא לכל הנתונים, ובשליפה מטבלת הדפדוף אפשר לבצע join לטבלה המקורית בעזרת ה-rowid המתאים). כאשר המשתמש מוריד את הדף אתה יכול לבצע ישר פרוצדורת PL/SQL שתבצע insert מהטבלה המקורית לטבלת הדפדוף ולאחר מכן לשלוף את הנתונים מטבלת הדפדוף בעזרת requestID ו-line (כמובן שיש ליצור אינדקס מתאים עבורם). אם אתה רוצה לשפר עוד יותר ביצועים, תוכל לשלוף נניח 20 שורות ראשונות ע"י הגבלה של rownum ב-thread הראשי של התוכנית שלך (נניח איזה COM object), ובמקביל ליצור thread נוסף ולבצע את ה-insert, כך שהמשתמש יקבל במהירות יחסית לפחות את השורות הראשונות.
 

Shahar Sages

New member
מה הבעיה..?

סך הכל אותו דף ASP צריך לקבל פרמטר נוסף שיציין החל מאיזו רשומה להציג, ואז פשוט מציגים החל מרשומה זו ועד כמה שרוצים 20 40 .. אפשר ב ASP PL PHP .
 
למעלה