mysql קריאה סינכרונית לפונקציות בתוך שאילתה
-
שלום לכולם
יש לי פרוצדורה שאמורה להחזיר שורות עם ערכים מתוך פונקציות.
ההנחה הבסיסית היא ששאילתה עובדת בצורה סנכרונית כלומר כל רשומה מטופלת בפני עצמה וכשהטיפול מסתיים עוברים לרשומה הבאה.
אולם מה אם לא כן? האם יש חשש שהמנוע עושה מה בא לו ואחר כך רק "מציג" את התוצאות בדיוק כפי שאמרנו לו משל היה ילד טוב ירושלים. ויש בזה נ"מ רבתי, נניח שבכל רשומה יש קריאה לפונקציה, הפונקציה מקבלת ערכים ומעדכנת משהו, אז אם הסלקט יש לו אורדר ביי, אני מצפה ממנו לקרוא לפונקציה לפי סדר האורדר ביי הלא כן?? ואם אני בונה על זה שזה אכן יתבצע לפי סדר האורדר ביי דייקא???
דבר נוסף וחשוב, אני עושה טבלה זמנית בתוך הפונקציה, יוצר אותה בתחילת הפונקציה ודורס אותה בסופה (ב Mysql אין מערכים ואין משתנה טבלה יש רק טבלה זמנית שבעת קיומה היא זמינה בכל רחבי מסד הנתונים לסשן הנוכחי) כעת יש נ"מ עצומה אם זה סינכרוני או אסינכרוני, כי הוא עלול למלא לי את הטבלה הזאת בערכים שקריאה אחרת לגמרי מטפלת בהם, וליצור סדום ועמורה אדמה וצבויים בתוך הנתונים....מה תגידו? תבדוק את זה אדרבה תעשה ניסיון. הבעיה שאני מחמיר ולא סומך על ניסיונות בתחום הרגיש הזה, זאת שאלה עקרונית של כיצד המנוע מתנהג והוא עלול להפתיע בעת עומס והאופטימייזר פתאום יחליט לטובת האזרח הקטן "לייעל" את המערכת ולבצע דברים בצורה אסינכרונית, לכן אם יש מישהו שיודע לפנות לדוקומנטציה רשמית בנושא אשמח לשמוע.
תודה.
פורסם במקור בפורום CODE613 ב20/06/2014 10:37 (+03:00)