נושא: ביטול buffering במסדי נתונים שונים.
|
|
כותב |
|
fgs אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 09 August 2007 בשעה 08:37 | | IP רשוּם
|
|
|
|
שלום, מה שאני מנסה לעשות זה בעצם לבטל את ה buffering כשאני שולף נתונים ממסד נתונים (לא חשוב איזה, אם זה אפשרי רק בסוג אחד, אני אעבור לעבוד עם הסוג הזה) אני אסביר את עצמי יותר טוב, נגיד ויש לי טבלה עם מיליון שורות ואני מריץ שאילתה פשוטה:
קוד:
] select id from huge_table
|
|
|
מה
שקורה, לפחות ב mysql וב postgresql זה שקודם המסד נתונים מבצע את השאילתה
בשלמותה, כלומר מכניס את כל השורות הנתונים לזכרון (buffer) ואח"כ מציג לי
הכל בבת אחת. דבר זה ממש לא יעיל בטבלאות ענקיות, אני רוצה למשל שכל 10 תוצאות שהוא מוצא הוא ישר יביא לי אותן וימשיך לחפש הלאה.
האם יש אפשרות לא מסובכת לעשות את זה?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 09 August 2007 בשעה 09:55 | | IP רשוּם
|
|
|
|
פשוט תפריד את השאילתות (ונהוג מליון שורות להציג בכמה עמודים (: )
זה תלוי סוג מסד, במסד ACCESS SELECT TOP X FROM TABLE
במסד MYSQL SELECT X FROM TABLE LIMIT SKIP,COUNT
במסד MSSQL SELECT TOP X FROM TABLE ואפשר גם להתחכם ולעשות
קוד:
select * from ( select top **COUNT** emp_id,lname,fname from ( select top **COUNT**+**SKIP** emp_id,lname,fname from employee order by lname asc ) as newtbl order by lname desc ) as newtbl2 order by lname asc |
|
|
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
|
|
אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם
|
אינך יכול/ה לשלוח נושאים חדשים בפורום זה אינך יכול/ה להגיב לנושאים בפורום זה אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה אינך יכול/ה לצור סקרים בפורום זה אינך יכול/ה להצביע בסקרים בפורום זה
|