לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 14-03-2012, 23:28
צלמית המשתמש של בן אור
  בן אור בן אור אינו מחובר  
 
חבר מתאריך: 24.02.05
הודעות: 17,595
שלח הודעה דרך ICQ אל בן אור שלח הודעה דרך MSN אל בן אור Facebook profile Follow me...
שליחת פרמטרים דינאמים לפרוצדורה ב sql server

היי
אני משתמש ב sql server 2008 ועלה לי צורך לבצע חיפוש כשאחד הפילטרים הוא בחירה מרובה
בדרך כלל אני עושה את זה על ידי שליחת האינדקסים לכל בחירה במחרוזת כשהם מופרדים בפסיק כדוגמת
1,4,7,36
אם המשתמש בחר לסנן על פי 1 4 7 או 36
אני מפצל את המחרוזת על פי הפסיק לטבלה זמנית ואז
where status in tempStatusTable

עכשיו עלה צורך לייעל את הפרוצדורה הזאת ואני יודע שעבודה עם מחרוזות יחסית כבדה ל sql server אז חיפשתי פיתרון יותר יעיל ללא הצלחה

מישהו מכיר פיתרון יותר טוב לנושא?

תודה לעוזרים
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 12-05-2012, 01:50
  i_cohen i_cohen אינו מחובר  
 
חבר מתאריך: 12.05.12
הודעות: 1
בתגובה להודעה מספר 1 שנכתבה על ידי בן אור שמתחילה ב "שליחת פרמטרים דינאמים לפרוצדורה ב sql server"

היי,
קודם כל, עבודה עם מחרוזת לא בהכרח כבדה ל sql server. אין כלל כזה. זה תלוי מאוד ב data type ובפעולה עצמה שאתה עושה. כמובן שיש מקומות שמחרוזות מתאימות יותר ויש מקומות שפחות.

דבר שני, אם אתה רוצה לשלוח את כל הנתונים בפעם אחת מהאפליקציה אז אתה כן צריך לשלוח את זה כסטרינג.
בהנחה שהפילטר לא כולל עשרות אלפי רשומות אז אין סיבה טובה להשתמש ב temp table. מה שאתה צריך לעשות זה לשרשר את המחרוזת שאתה מקבל לשליפה מלאה, תשתמש בשביל זה ב sp_executesql (תקרא על זה ב books online).

אני אקדים ואומר שבגלל שאמרת שעם ה temp table המחיקה התבצעה לאט אז אני מניח שזה בגלל שהטבלה שאתה מוחק ממנה מכילה הרבה רשומות, ואז גם הפתרון שנתתי בפיסקה הקודמת לא יעזור. יש דרכים חכמות לייעל את זה והרבה בדיקות לעשות, אבל זה כבר אשכרה עבודה של dba. בכל מקרה, כנראה שלהוסיף index על העמודה של ה status בטבלה שממנה אתה מוחק את הנתונים יעיף את זה מהר.

בהצלחה
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 15:48

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר