פורסם 2013 בנובמבר 412 שנים היי,נניח שיש לי פונקציה שמקבלת נתונים (stringים) וחיבור לבסיס נתונים (OleDbConnection).הפונקציה פותחת חיבור (OleDbConnection.open()) ואז כותבת לתוך ה-DB נתונים בעזרת OleDbCommand וExecuteNonQuery.כמובן שבסוף הכתיבה הפוקנציה סוגרת את החיבור.ועכשיו אני קורא לפונקציה הזאת המון פעמים מכל מיני מקומות בתוכנההאם עדיין יהיה שימוש בConnection pool? או שבכל פעם שאני קורא לפונקציה הוא יפתח חיבור מחדש כי זה כבר לא אותו block?יש דרך חכמה יותר לעשות את זה? כדאי נניח לכתוב דברים ל-XML ולעשות תהליך אחר שאחת ל-X זמן יטען את כל הXMLים? נערך 2013 בנובמבר 412 שנים על-ידי TheAnthrax
פורסם 2013 בנובמבר 412 שנים מחבר חח אני אבין שזה אומר "לא".אוקיי - ובכל זאת: זה לוקח מלא מלא זמן ריצה כי בערך כל חמש שורות קוד אני קורא לפונקציה הזאת כדי שתכתוב לוג על מה שקרה לתוך ה-DB.אין משהו שאפשר לעשות כדי להקל על חייו?ב-stackOverFlow מציעים לעשות bulk.אבל בשביל זה אני צריך לאגור את המידע באופן זמני איפשהו (ואז להעלות אותו במאוחד). איך?
פורסם 2013 בנובמבר 512 שנים bulk בא לחסוך ריבוי insert רגיל.זה לא הבעיה שלך, כי ברגע נתון יש לך שורה בלבד.יש לך שתי אפשרויות:א. להחזיק חיבור פתוח, במשתנה סטטי למשל.ב. להשתמש עם DataTable (למה XML?) ולשמור אותה אותה בפרק זמן/כמות רשומות קצוב.האפשרות הראשונה היא המועדפת בעיני. מומלץ שתוסיף מנגנון שסוגר אוטומטית את החיבור אחרי פרק זמן שלא נעשה בו שימוש. כמו"כ צריך לדאוג לסגירה מסודרת שלו בסיום העסק.האפשרות השניה באה בחשבון רק אם לא קריטי מקרה של איבוד מידע (אם כל חמש דקות אתה מעדכן למשל, במקרה של נפילת האפליקציה תאבד חמש דקות של "לוג").בכל מקרה, אם אתה מתבסס על פרק זמן תשתמש עם טיימר, ואם לפי כמות שורות אז תבדוק בתחילת הפונקציה את כמות השורות האגורות, ואז במידה וזה הכמות המתבקשת תבצע עדכון. נערך 2013 בנובמבר 512 שנים על-ידי מולטיפרוסס
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.