none
קישור אפליקציית אקסס לשרת SQL SERVER בענן RRS feed

  • שאלה

  • שלום,

    ברשותי אפליקציית אקסס שמקושרת לבסיסי נתונים ב-SQL SERVER.

    אני מחפש פתרון לאחסון בסיסי הנתונים בענן וקישור לאקסס על ידי ODBC.

    ניסיתי את השירות של מייקרוסופט. הגדרתי virtual machine ועליה sql server express 2008.

    העברתי את בסיסי הנתונים לשרת sql server ובצעתי את הקישור.

    הבעיה היא שהאפליקציה עבדה לאט מאוד בתצורה הזו.

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

    תודה רבה





    • נערך על-ידי Avisam שבת 22 פברואר 2014 21:24
    שבת 22 פברואר 2014 21:17

תשובות

  • שלום,

    לשאלתך ל Windows Azure  יש מספר Data centers   בעולם אך לא בארץ.

    נושאים לבדיקה:

    1. באיזה Data center נמצאת המכונה הוירטואלית ? הכי קרוב אלינו זה אירופה אבל יש גם North Europe  וגם West Europe
    האתר הנ"ל נותן דגימה מה ה latency לכל datacenter
    http://www.azurespeed.com/

    2. האם בצעת בדיקה מה סיבת האיטיות?
    לדוגמא: האם בדקת את אותן שאילתות באופן מקומי על המכונה הווירטואלית?

    מקווה שעזרתי,

    נועם

    • הוצע כתשובה על-ידי Eran Sharvit יום שלישי 04 מרץ 2014 09:38
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 09 מרץ 2014 09:46
    יום ראשון 23 פברואר 2014 07:23
  • ערב טוב אבישם

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

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

    2. אקסס היא תוכנה משרדית ולא שרת מסדי נתונים. ההבדלים ענקיים ומתבטאים כמובן במהירות בין השאר. אם כל מה שאתה צריך זה שימוש באקסס כמסד נתונים אז הבחירה הראשונית שלך מוטעית לחלוטין! אתה יכול לעבוד עם גרסאות חינמיות של שרתי מסדי נתונים כמו SQL EXPRESS.

    3. הבעיה המרכזית שאתה מציג היא תעבורה, זה לא בהכרח הבעיה האמיתית שלך ו/או המקור לאיטיות, אבל נדון לרגע בנושא תעבורה:

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

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

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

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

    נעבור לשאלות שלך:

    האם ניתן להתקין access על המכונה הוירטואלית על מנת לבצע בדיקות?

    כמובן שכן

    האם לדעתך, ניתן לקבל ביצועים טובים בתצורה כזו (access front end & SQL SERVER on AZURE VM) או שעלי לשקול פתרון אחר?

    כמובן שכן! עלייך לשקול פתרונות אחרים במקביל בהתאם לאפיון שלכם!!

    אני מקווה שזה נותן לך את מה שאת מחפש :-)


    [Personal Site] [Blog] [Facebook]signature

    • נערך על-ידי pituachMVP, Editor יום ראשון 23 פברואר 2014 20:51
    • הוצע כתשובה על-ידי Eran Sharvit יום שלישי 04 מרץ 2014 09:38
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 09 מרץ 2014 09:46
    יום ראשון 23 פברואר 2014 16:23
    מנחה דיון

כל התגובות

  • שלום,

    לשאלתך ל Windows Azure  יש מספר Data centers   בעולם אך לא בארץ.

    נושאים לבדיקה:

    1. באיזה Data center נמצאת המכונה הוירטואלית ? הכי קרוב אלינו זה אירופה אבל יש גם North Europe  וגם West Europe
    האתר הנ"ל נותן דגימה מה ה latency לכל datacenter
    http://www.azurespeed.com/

    2. האם בצעת בדיקה מה סיבת האיטיות?
    לדוגמא: האם בדקת את אותן שאילתות באופן מקומי על המכונה הווירטואלית?

    מקווה שעזרתי,

    נועם

    • הוצע כתשובה על-ידי Eran Sharvit יום שלישי 04 מרץ 2014 09:38
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 09 מרץ 2014 09:46
    יום ראשון 23 פברואר 2014 07:23
  • שלום,

    תודה על תשובתך.

    אני מנסה למצוא דרך לבצע את החיבור של האפליקציה לרשת ללא פיתוח מחדש של ממשק המשתמש.

    בבדיקה שעשיתי בקישור שצירפת עולה שהזמן התגובה הכי מהיר מתקבל מ-West Europe. אני אגדיר VM במיקום זה.

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

    האם ניתן להתקין access על המכונה הוירטואלית על מנת לבצע בדיקות?

    האם לדעתך, ניתן לקבל ביצועים טובים בתצורה כזו (access front end & SQL SERVER on AZURE VM) או שעלי לשקול פתרון אחר?

    האם ל-amazon יש Data Center בארץ? האם יש שירות דומה בארץ?

    תודה רבה על העזרה

    יום ראשון 23 פברואר 2014 15:47
  • ערב טוב אבישם

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

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

    2. אקסס היא תוכנה משרדית ולא שרת מסדי נתונים. ההבדלים ענקיים ומתבטאים כמובן במהירות בין השאר. אם כל מה שאתה צריך זה שימוש באקסס כמסד נתונים אז הבחירה הראשונית שלך מוטעית לחלוטין! אתה יכול לעבוד עם גרסאות חינמיות של שרתי מסדי נתונים כמו SQL EXPRESS.

    3. הבעיה המרכזית שאתה מציג היא תעבורה, זה לא בהכרח הבעיה האמיתית שלך ו/או המקור לאיטיות, אבל נדון לרגע בנושא תעבורה:

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

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

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

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

    נעבור לשאלות שלך:

    האם ניתן להתקין access על המכונה הוירטואלית על מנת לבצע בדיקות?

    כמובן שכן

    האם לדעתך, ניתן לקבל ביצועים טובים בתצורה כזו (access front end & SQL SERVER on AZURE VM) או שעלי לשקול פתרון אחר?

    כמובן שכן! עלייך לשקול פתרונות אחרים במקביל בהתאם לאפיון שלכם!!

    אני מקווה שזה נותן לך את מה שאת מחפש :-)


    [Personal Site] [Blog] [Facebook]signature

    • נערך על-ידי pituachMVP, Editor יום ראשון 23 פברואר 2014 20:51
    • הוצע כתשובה על-ידי Eran Sharvit יום שלישי 04 מרץ 2014 09:38
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 09 מרץ 2014 09:46
    יום ראשון 23 פברואר 2014 16:23
    מנחה דיון
  • שלום,

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

    המערכת פותחה בתחילה באקסס. שנצבר מידע רב הוחלט לעבור ל-SQL SERVER. קיימים כמה עשרות משתמשים ולכל אחד מוגדר בסיס נתונים נפרד. המטרה כעת היא לבצע קישור לרשת. פיתוח ממשק באקסס הוא מהיר וזול וניתן לממש בו שינויים במהירות. SQL SERVER EXPRESS מספק פיתרון מצויין ל-back end. נדרש גם למצוא פתרון לאחסון קבצים ברשת (לא בבסיס הנתונים) על ידי המשתמשים (העלאה והורדה).נושא האבטחה גם חשוב וראיתי שקישור ב-ODBC אינו מספק זאת וייתכן שהמשתמשים ידרשו להגדיר כתובת IP קבועה.

    כתבת שהמהירות בענן בישראל היא נמוכה ואתה בוחר בפתרונות אחרים. האם תסכים לתת דוגמה למספר פתרונות חלופיים?

    תודה רבה על העזרה

    יום שני 24 פברואר 2014 20:47
  • אהלן אבישם,

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

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

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

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

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

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

    אחסון בשירות ענן בארץ (אני מדבר על שירות למסד הנתונים בלבד ולא מכונה כמובן).

    ועוד ועוד.. ככל שהדימיון פורח :-)

    * לאור המידע החדש בהודעה מעל, הייתי חושב לעומק על שינוי מהותי בארכיטקטורה של המערכת שלכם!


    [Personal Site] [Blog] [Facebook]signature

    • נערך על-ידי pituachMVP, Editor יום חמישי 27 פברואר 2014 10:02 תיקון שיאת הקלדה
    יום שלישי 25 פברואר 2014 09:30
    מנחה דיון
  • שלום Avisam,

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

    אם לא, אנא שתף אותנו כדי שנדע איך עוד נוכל לעזור...

    תודה!

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    Madeira - SQL Server Services
    http://www.madeira.co.il

    יום שלישי 04 מרץ 2014 06:47
    מנחה דיון