דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. קוד אסינכרוני בייצוא אקסל - C#

קוד אסינכרוני בייצוא אקסל - C#

מתוזמן נעוץ נעול הועבר תכנות
16 פוסטים 4 כותבים 319 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • clickoneC מנותק
    clickoneC מנותק
    clickone
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי טבלה שמכילה כיום כמליון רשומות (בכל יום נוספות לה יותר מכמה אלפים)
    כשאני רוצה לעשות עליה ייצוא לאקסל, אפילו אם אני מקצץ את התשובה ל100K או 200K, אני מקבל דיליי על שאר הבקשות - ז"א, לכל שאר הבקשות לדף שמכיל את הנתונים - אבל בעיקר בסשן הנוכחי

    אני משתמש בTask ובawait

    הזיכרון בשרת רואים שהוא עובד קצת קשה ונחנק 😞
    סביבה:
    asp net mvc
    c#
    ef
    sql server

    למי שיש רעיונות אשמח לשמוע
    תודה

    אין טסט כמו פרודקשן.

    המייל שלי urivpn@gmail.com

    dovidD תגובה 1 תגובה אחרונה
    1
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לclickone ב נערך לאחרונה על ידי
      #2

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

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      clickoneC תגובה 1 תגובה אחרונה
      2
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid
        זה ריצה נורמלית בלופ
        ספריית הייצוא לאקסל היא epplus
        גודל הקובץ לאחר ייצוא הוא כ30 מגה ל700K רשומות.

        אולי בגלל שהוא שואב זיכרון כי הכל בלייב?

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        dovidD תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          השיב לclickone ב נערך לאחרונה על ידי
          #4

          @clickone אני אשמח לראות את הקוד, או עכ"פ מתאר מדומה אבל מדוייק שלו.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          0
          • ח מנותק
            ח מנותק
            חוקר
            כתב ב נערך לאחרונה על ידי
            #5

            אולי לא הבנתי טוב את הכותרת, אבללפי איך שאני מנסה להבין, למה שלא תוכל לעשות לולאה שמורידה כל פעם נניח 10K ע"י לימיט ואופסט, ע"י משאב זרימה שכותב לקובץ בכל ריצה של הלולאה את החלק הזה בלבד, ואתה עושה בדיקה שאם הכמות של השורות שהתקבל בריצה == 10K אתה ממשיך להריץ פעם נוספת (וכן בדיקה שלא חזר 0 שורות, באם ביום מן הימים יהיה סכום עגול של 10K), אחרת זה מסיים את הלולאה.

            dovidD תגובה 1 תגובה אחרונה
            1
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לחוקר ב נערך לאחרונה על ידי
              #6

              @חוקר גם כשעושים 1000K ביחד, בטכנולוגיות האמורות, זה אמור להיות בזרימה לאורך כל התהליך.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              ח תגובה 1 תגובה אחרונה
              4
              • ח מנותק
                ח מנותק
                חוקר
                השיב לdovid ב נערך לאחרונה על ידי
                #7

                @dovid אמר בקוד אסינכרוני בייצוא אקסל - C#:

                @חוקר גם כשעושים 1000K ביחד, בטכנולוגיות האמורות, זה אמור להיות בזרימה לאורך כל התהליך.

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

                dovidD תגובה 1 תגובה אחרונה
                0
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  השיב לחוקר ב נערך לאחרונה על ידי dovid
                  #8

                  @חוקר דבר ראשון, לא צריך בשום מקום limit+offset. כי קריאה מהמסד נתונים מתבצעת גם כזרם, כך שאם עושים תוצרת עצמית זה צריך להתחיל מאופן הקריאה מהמסד ואופן הכתיבה לקובץ.
                  דבר שני אכן CSV זה ממש קל הרבה הרבה יותר. ראשית כי בשביל CSV לא חייבים ספריה - זה קובץ טקסט פשוט, שנית, בגלל המבנה ה"שטוח" שלו והפשטות שלו שכל שלב בכתיבה לא צריך למה שעבר ולמה שעתיד.
                  בקובץ אקסל למשל, יש מבנה היררכי מסובך ובנוסף לזה אחרי שגורמים לכתוב הכל חייבים לדחוס את זה בזיפ, ורק אז להתחיל לשלוח ללקוח. כל זה עושה שאין בעצם "זרימה".

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  clickoneC תגובה 1 תגובה אחרונה
                  4
                  • clickoneC מנותק
                    clickoneC מנותק
                    clickone
                    השיב לdovid ב נערך לאחרונה על ידי clickone
                    #9

                    @dovid
                    העברתי לCSV ואכן מגיב הרבה יותר מהר. (תודה על החבילה של CsvHelper 🙂 )
                    אבל הלקוח עדיין דורש אקסל 😞 וכמובן הדרישה שחצי מליון מליון רשומות חייבות לרדת לכולם בו זמנית ומיד 😞
                    @dovid זה אני משאיר לך לשכנע את הלקוח... 😛

                    תודה רבה

                    אין טסט כמו פרודקשן.

                    המייל שלי urivpn@gmail.com

                    ח תגובה 1 תגובה אחרונה
                    0
                    • upsilon01U מנותק
                      upsilon01U מנותק
                      upsilon01
                      כתב ב נערך לאחרונה על ידי
                      #10

                      אפשר לפתוח CSV באקסל

                      clickoneC תגובה 1 תגובה אחרונה
                      0
                      • ח מנותק
                        ח מנותק
                        חוקר
                        השיב לclickone ב נערך לאחרונה על ידי
                        #11

                        @clickone אמר בקוד אסינכרוני בייצוא אקסל - C#:

                        @dovid
                        העברתי לCSV ואכן מגיב הרבה יותר מהר. (תודה על החבילה של CsvHelper 🙂 )
                        אבל הלקוח עדיין דורש אקסל 😞 וכמובן הדרישה שחצי מליון מליון רשומות חייבות לרדת לכולם בו זמנית ומיד 😞
                        @dovid זה אני משאיר לך לשכנע את הלקוח... 😛

                        תודה רבה

                        אני משתמש בYII2 בייצוא לאקסל עם ספריה, וטבלאות מעל 10K זה נתקע, שם אני משתמש בCSV פשוט

                        תגובה 1 תגובה אחרונה
                        1
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          כתב ב נערך לאחרונה על ידי dovid
                          #12

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

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          תגובה 1 תגובה אחרונה
                          1
                          • clickoneC מנותק
                            clickoneC מנותק
                            clickone
                            השיב לupsilon01 ב נערך לאחרונה על ידי clickone
                            #13

                            @upsilon01 אמר בקוד אסינכרוני בייצוא אקסל - C#:

                            אפשר לפתוח CSV באקסל

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

                            @dovid מי כמוך יודע שהלקוח תמיד צודק ....
                            רק צריך לשכנע אותו שהצדק עם מה שאני חושב ולא עם מה שהוא חושב 😛

                            אין טסט כמו פרודקשן.

                            המייל שלי urivpn@gmail.com

                            ח תגובה 1 תגובה אחרונה
                            1
                            • ח מנותק
                              ח מנותק
                              חוקר
                              השיב לclickone ב נערך לאחרונה על ידי
                              #14

                              @clickone אמר בקוד אסינכרוני בייצוא אקסל - C#:

                              @upsilon01 אמר בקוד אסינכרוני בייצוא אקסל - C#:

                              אפשר לפתוח CSV באקסל

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

                              @dovid מי כמוך יודע שהלקוח תמיד צודק ....
                              רק צריך לשכנע אותו שהצדק עם מה שאני חושב ולא עם מה שהוא חושב 😛

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

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

                              dovidD תגובה 1 תגובה אחרונה
                              0
                              • dovidD מנותק
                                dovidD מנותק
                                dovid ניהול
                                השיב לחוקר ב נערך לאחרונה על ידי
                                #15

                                @חוקר חשבת שלשמור בפורמט X ולהמיר לY יהיה מהיר מאשר לשמור ישירות לY?

                                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                ח תגובה 1 תגובה אחרונה
                                2
                                • ח מנותק
                                  ח מנותק
                                  חוקר
                                  השיב לdovid ב נערך לאחרונה על ידי
                                  #16

                                  @dovid אמר בקוד אסינכרוני בייצוא אקסל - C#:

                                  @חוקר חשבת שלשמור בפורמט X ולהמיר לY יהיה מהיר מאשר לשמור ישירות לY?

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

                                  תגובה 1 תגובה אחרונה
                                  0

                                  בא תתחבר לדף היומי!
                                  • התחברות

                                  • אין לך חשבון עדיין? הרשמה

                                  • התחברו או הירשמו כדי לחפש.
                                  • פוסט ראשון
                                    פוסט אחרון
                                  0
                                  • דף הבית
                                  • קטגוריות
                                  • פוסטים אחרונים
                                  • משתמשים
                                  • חיפוש
                                  • חוקי הפורום