טבלה זמנית

24sharon

New member
טבלה זמנית ../images/Emo35.gif

כמה שאלות. 1. היצירה של הטבלה היא על ידי סולמית לדוגמא create table #myTblName.... האם יש הבדל בין סולמית אחת ל-2 סולמיות. 2. כמו שהבנתי הטבלה נשמרת בזכרון ולא ממש על הSQL עצמו, האם היא נמחקת אוטומטית או שאני צריכה לדאוג למחוק אותה? 3. במידה ואני צריכה למחוק אותה, אם תוך כדי פעולה המשתמש סגר את הדפדפן או כל הפסקת קשר בינהם, ועדיין לא מחקתי אותה, האם היא נשארת שם לנצח, או שיש איזה GARBAGE שמוחק את כל הטבלאות הזמניות. 4. האם בניית טבלה זמנית פר משתמש היא יעילה / לא יעילה, אולי עדיף בכלל ליצור טבלה אחרת קבועה ולהגדיר את המשתמש כשדה USER ואז סינון לפי הUSER מציג לי את הנתונים למשתמש זה? 5. האם ניתן לתת לטבלה הזמנית שם דינמי לדוגמא הUSERID =5 אזי אני רוצה ליצור טבלה #temp5 6. בכלל מתי מתאים שימוש בטבלה זמנית, ומתי עדיף שימוש בטבלה קבועה + טריגר / ג'וב שמוחקים את הנתונים. תודה על כל מידע!
 

GeForce 5

New member
>>

1. היצירה של הטבלה היא על ידי סולמית לדוגמא create table #myTblName.... האם יש הבדל בין סולמית אחת ל-2 סולמיות. # אחת היא טבלה שנראית רק מה-session שבו היא נוצרה, טבלה בעלת שתי סולמיות נגישה מכל session. 2. כמו שהבנתי הטבלה נשמרת בזכרון ולא ממש על הSQL עצמו, האם היא נמחקת אוטומטית או שאני צריכה לדאוג למחוק אותה? טבלאות זמניות נשמרות ב-tempdb, טבלאות משתנה (@ במקום #) נשמרות בזכרון. המחיקה מתבצעת אוטומטית בעת סגירת ה-session שיצר את הטבלה או עם ביצוע drop 3. במידה ואני צריכה למחוק אותה, אם תוך כדי פעולה המשתמש סגר את הדפדפן או כל הפסקת קשר בינהם, ועדיין לא מחקתי אותה, האם היא נשארת שם לנצח, או שיש איזה GARBAGE שמוחק את כל הטבלאות הזמניות. ראי 2- אם ה-session ל-sql נסגר בעת סגירת הדפדפן הטבלה תימחק. 4. האם בניית טבלה זמנית פר משתמש היא יעילה / לא יעילה, אולי עדיף בכלל ליצור טבלה אחרת קבועה ולהגדיר את המשתמש כשדה USER ואז סינון לפי הUSER מציג לי את הנתונים למשתמש זה? תלוי בסיטואציה, ככלל עדיף להימנע מטבלאות זמניות אבל זה תלוי במקרה. 5. האם ניתן לתת לטבלה הזמנית שם דינמי לדוגמא הUSERID =5 אזי אני רוצה ליצור טבלה #temp5 כן, אבל אז תיאלצי להשתמש ב-sql דינמי ליצור אותה, למלא ולשלוף ממנה. חשוב להבין שאם רצות שתי פרוצדורות במקביל, בשני sessions שונים, ושניהם יוצרים טבלה זמנית בשם temp# אז כל טבלה תהיה ייחודית, ובעצם תיווצר בשם שונה, נסי לשלוף מ-tempdb..sysobjects אחרי יצירת הטבלה ותראי שהשם שונה, המקרה שונה בטבלאות בעלות שתי סולמיות כמובן 6. בכלל מתי מתאים שימוש בטבלה זמנית, ומתי עדיף שימוש בטבלה קבועה + טריגר / ג'וב שמוחקים את הנתונים. השאלה לא ברורה לי, נסי לתת דוגמא. אני לא מכיר מקרה בו טבלה זמנית מחליפה ג'וב או טריגר, יש לי הרגשה שאת משתמשת בטבלאות זמניות שלא לייעודן, וכפי שאמרתי רצוי להימנע ככל האפשר. תודה על כל מידע!
 

24sharon

New member
../images/Emo51.gif

השתמשתי לעת עתה בטבלה קבועה, ומחיקת הנתונים תתבצע על ידי טריגר. בכל מקרה המון המון תודה
 
למעלה