none
בעייה ביצירת סקריפטים ע"י ה-WIZARD ב- SQL SERVER 2008 R2 RRS feed

תשובות

  • הי,

    במידה ולא נוצרו לך הקבצים אזי אין לך מה להפעיל sqlcmd מכוון שזה כלי להרצת הקבצים שנוצרו.

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

    קצת "כורדי" ולמעשה גם לא עונה על השאלה אך מניסיוני ברגע שאני נתקל בבעיה באחד מהכלים האוטומטים אני פונה לשיטה אחרת או מנסה לעבור את המסוכה ב- work around מהיר.

    הקוד המצורף מייצא את הפרוצדורות והפונקציות, אתה יכול לשמור את ה- output לקובץ ולסגור עיניין

    Select name, object_definition(object_id)
    
    From sys.procedures
    
    
    
    Select name, object_definition(object_id)
    
    From sys.all_objects
    
    Where type in ('FN', 'FS', 'FT', 'TF')

     


    אסף שלם
    • נערך על-ידי Assaf_Shalem יום ראשון 24 יולי 2011 11:14
    • סומן כתשובה על-ידי itaigitt יום שלישי 26 יולי 2011 13:11
    יום ראשון 24 יולי 2011 10:47
  • א. הכוונה שאת יצירת הקבצים תבצע דרך ה SHELL ולא רק ההרצה שלהם.

    בזמן יצירת קובץ דרך ה SSMS המערכת של ה SSMS פועלת ברקע בעוד ב SHEL אין לו חלק בתהליך ולכן אפשר להריץ שאילתות נקיות ולוודא שהבעיה אינה קשורה לממשק הגרפי.

    תוספת: חשבתי על דוגמה טובה של מצב דומה. הרצת לולאה ארוכה בממשק ה SHELL של חלונות שמדפיסה למסך שורת טקסט יכולה לקחת חצי שעה בזמן שאותה לולאה אם מבצעים מאחורי הלקעים רישום לקובץ של התוצאה יכולה לקחת שניות בודדות (כנ"ל ביצוע פעולות תחזוקה כמו גיבוי דיסקים וכו').

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

    ג. לגבי השאלה של ה 2005 אני לא יכול לענות כי אין לי הנתונים מולי כמובן אבל יותר קיצוני מזה אפילו :-) אני לא אתפלא אם תבצע גיבוי ושחזור למסד נתונים חדש ופתאום מהמסד המשוחזר זה כן יעבוד. לפעמים הבעיה קשורה לקשרים בין אלמנטים ולפעמים לאפליקציות חיצוניות שעושות שמוש בשרת ועוד... אין לי כאמור תשובה חד משמעית לפי הנתונים כאן, אלא פעולות שהייתי מבצע כדי לבדוק ו/או להגיע לפתרון



    • נערך על-ידי pituachMVP, Editor יום ראשון 24 יולי 2011 11:13 תוספת
    • סומן כתשובה על-ידי itaigitt יום שלישי 26 יולי 2011 13:11
    יום ראשון 24 יולי 2011 11:00
    מנחה דיון
  • היי.

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

    לא פתרון אמיתי, אבל לא היייתה לי הרבה ברירה.

    אני צריך עוד להתעמק בכל הדברים שהועלו פה, אם ובלי קשר למקרה הזה.

    תודה בכל מקרה לכל העוזרים, בוודאי למדתי המון.....


    itaigitt, http://copypastenet.blogspot.com
    • סומן כתשובה על-ידי itaigitt יום שלישי 26 יולי 2011 13:11
    יום שלישי 26 יולי 2011 13:10

כל התגובות

  • ההודעה נראית לי דיי ברורה ואפילו רושמת לך כיצד לעקוף את הבעיה :-)

    ככל הנראה הקובץ סקריפט שנוצר גדול מדי לעבודה און-ליין ב SSMS דרך ממשק הגרפי

    לכן יש לנו גם ממשק פקודות

     

    כמו שיש במערכת ההפעלה אפשרות להפעיל ממשק פקודות SHELL כך כם יש אפשרות להפעיל SHELL של שרת ה SQL. כדי להפעיל את ממשק ה SHEL של מערכת ההפעלה אתה רושם ב start -> run
    את הפקודה CMD. כדי להפעיל מאת הממשק ה SHELL של שרת ה SQL אתה פשוט רושם SQLCMDוהוא יפתח לך

    דרך ממשק זה אתה יכול להריץ סקריפטים בגודל של 4G תיאורטית

    ניתן לייצר קובץ סקריפט ולהריץ אותו דרך SQLCMD

    נסה לקרוא מעט יותר על SQLCMD: תכניס בגוגל את הצירוף sqlcmd tutorial

     


    יום ראשון 24 יולי 2011 09:17
    מנחה דיון
  • הי,

    לא יצא לי לבצע את הפעולה אך יש לי שאלה, האם אתה בוחר לייצא לקובץ?

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

    יום טוב,

     


    אסף שלם
    יום ראשון 24 יולי 2011 09:27
  • רונן - איך זה שב-2005 זה לא נופל? לגבי ה-SQLCMD - אני אנסה.

    אסף - זה קרה לי כאשר הגדרתי קובץ לכל אובייקט.


    itaigitt, http://copypastenet.blogspot.com
    יום ראשון 24 יולי 2011 10:13
  • הי,

    לא ברור לי איך נוצר קובץ גדול, עד כדי כך שהוא לא נפתח ב- SSMS, עבור אובייקט.

    בתיקיית הקבצים שנוצרו מה הגודל המקסימלי של הקובץ? עבור איזה אובייקט?

     


    אסף שלם
    יום ראשון 24 יולי 2011 10:24
  • היי אסף.

    אני אפרט יותר מה עשיתי, ע"מ שיהיה ברור יותר:

    נסיתי ליצור סקריפטים ל-stored procedures ולפונקציות ב-DB. קובץ נפרד לכל אובייקט.

    לא נוצרו קבצים - אחרי שעתיים של עבודה הפסקתי את ה-WIZARD, שהיה נראה שנכנס ללופ, ותקע לי את המחשב לגמרי....

    גם שהורדתי את מספר האובייקטים הבעייה קרתה.


    itaigitt, http://copypastenet.blogspot.com
    יום ראשון 24 יולי 2011 10:30
  • הי,

    במידה ולא נוצרו לך הקבצים אזי אין לך מה להפעיל sqlcmd מכוון שזה כלי להרצת הקבצים שנוצרו.

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

    קצת "כורדי" ולמעשה גם לא עונה על השאלה אך מניסיוני ברגע שאני נתקל בבעיה באחד מהכלים האוטומטים אני פונה לשיטה אחרת או מנסה לעבור את המסוכה ב- work around מהיר.

    הקוד המצורף מייצא את הפרוצדורות והפונקציות, אתה יכול לשמור את ה- output לקובץ ולסגור עיניין

    Select name, object_definition(object_id)
    
    From sys.procedures
    
    
    
    Select name, object_definition(object_id)
    
    From sys.all_objects
    
    Where type in ('FN', 'FS', 'FT', 'TF')

     


    אסף שלם
    • נערך על-ידי Assaf_Shalem יום ראשון 24 יולי 2011 11:14
    • סומן כתשובה על-ידי itaigitt יום שלישי 26 יולי 2011 13:11
    יום ראשון 24 יולי 2011 10:47
  • א. הכוונה שאת יצירת הקבצים תבצע דרך ה SHELL ולא רק ההרצה שלהם.

    בזמן יצירת קובץ דרך ה SSMS המערכת של ה SSMS פועלת ברקע בעוד ב SHEL אין לו חלק בתהליך ולכן אפשר להריץ שאילתות נקיות ולוודא שהבעיה אינה קשורה לממשק הגרפי.

    תוספת: חשבתי על דוגמה טובה של מצב דומה. הרצת לולאה ארוכה בממשק ה SHELL של חלונות שמדפיסה למסך שורת טקסט יכולה לקחת חצי שעה בזמן שאותה לולאה אם מבצעים מאחורי הלקעים רישום לקובץ של התוצאה יכולה לקחת שניות בודדות (כנ"ל ביצוע פעולות תחזוקה כמו גיבוי דיסקים וכו').

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

    ג. לגבי השאלה של ה 2005 אני לא יכול לענות כי אין לי הנתונים מולי כמובן אבל יותר קיצוני מזה אפילו :-) אני לא אתפלא אם תבצע גיבוי ושחזור למסד נתונים חדש ופתאום מהמסד המשוחזר זה כן יעבוד. לפעמים הבעיה קשורה לקשרים בין אלמנטים ולפעמים לאפליקציות חיצוניות שעושות שמוש בשרת ועוד... אין לי כאמור תשובה חד משמעית לפי הנתונים כאן, אלא פעולות שהייתי מבצע כדי לבדוק ו/או להגיע לפתרון



    • נערך על-ידי pituachMVP, Editor יום ראשון 24 יולי 2011 11:13 תוספת
    • סומן כתשובה על-ידי itaigitt יום שלישי 26 יולי 2011 13:11
    יום ראשון 24 יולי 2011 11:00
    מנחה דיון
  • היי.

    לגבי בדיקת החצאים:

    עשיתי כבר בהתחלה את הבדיקות האלו. אני נופל גם בכמות יחסית קטנה..... ואגב, הפתרונות הכורדים הם לעיתים הטובים ביותר (ואני אומר את זה אפילו שאני לא כורדי...) :-)

    אסף:

    הפתרון של object_definition נשמע לי מגניב, אבל קטע מוזר - זה לא השלים את כל הסקריפט של כמה מהאובייקטים.... איכשהו זה תמיד מסוכן.....

    רונן:

    אני לא כ"כ מכיר את העודה על ה-SHELL . יש מצב שתוכל לפרט קצת?

     

    המון תודה! איתי.


    itaigitt, http://copypastenet.blogspot.com
    יום שני 25 יולי 2011 15:08
  • הי,

    לגבי ההשלמה של הסקריפטים ב- Object_definition.

    תוודא שה- Result מיוצא ל- Text או ל- file ולא ל- grid ,מכוון שיש הגבלת אורך.

    את ההגבלה ל- Text אתה צריך לערוך למקסימום, לדעתי 8912.

     


    אסף שלם
    יום שני 25 יולי 2011 18:58
  • אומרים שתמונה שווה אלף מילים אז הנה אוסף תמונות שרצות זו אחרי זו = סירטון הסבר :-)

    http://www.youtube.com/watch?v=eKuVKn4jtqA

     

    יום שלישי 26 יולי 2011 04:47
    מנחה דיון
  • היי.

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

    לא פתרון אמיתי, אבל לא היייתה לי הרבה ברירה.

    אני צריך עוד להתעמק בכל הדברים שהועלו פה, אם ובלי קשר למקרה הזה.

    תודה בכל מקרה לכל העוזרים, בוודאי למדתי המון.....


    itaigitt, http://copypastenet.blogspot.com
    • סומן כתשובה על-ידי itaigitt יום שלישי 26 יולי 2011 13:11
    יום שלישי 26 יולי 2011 13:10