MySQL SSMA – ייבוא טבלאות מ-MySQL ל-MSSQL
מוצר חדש שעלה בשקט בשקט ב-CTP, ומיועד למי שנמצא על קו התפר בין MySQL, פרוייקט הקוד הפתוח הפופולארי לבין SQL Server.
מדובר בתוכנה קטנטנה ששוקלת רק 11MB על הכונן הקשיח, ודורשת את ה-MySQL ODBC Client שניתן להורדה חינם מאתר MySQL. אותי מפליא מדוע הם לא בחרו פשוט להשתמש ב-Native Provider של MySQL לסביבת .NET Framework., אבל מילא. שיהיה.
הכלי עצמו, לאחר שהותקן בדקה או שתיים, דורש רשיון (הניתן חינם באתר Microsoft) בדומה לכלים דומים (SSMA של Access) ולאחר שנפתח נראה כמעט זהה לכלי המקביל עבור Access, למעט האשף שעושה את החיים קצת פשוטים יותר. הכלי, אגב, תומך גם בשדרוג ל-SQL Azure שבענן אותו מיקרוסופט דוחפת בכל הכח.
תחילה ניצור פרוייקט חדש:
בשלב הבא נתחבר ל-MySQL המקור ול-SQL Server היעד וניתן לתוכנה לנתח את מבנה הנתונים במקור, וגם מציע הצעות לשינויים במקרים של אי תאימות.
כשמדובר בהמרת ה-Schema של הטבלאות הוא עושה עבודה טובה, וממיר היטב גם את האינדקסים המצורפים לטבלה ומסייע (לא בדקתי)להעביר גם את הטריגרים. כמו שאר הכלים מהסדרה הוא תומך בהמרה און ליין וגם ביצירת קובץ SQL.
בנוסף לכך הוא מציג דו"ח מאוד יפה על DB והבעיות הנובעות מהבדלים בין SQL Server ל-MySQL בתחום הטיפול בתאריכים ואחרים, וכותב בסוגריים הערכת זמן לטיפול בבעיה.
בשלב הבא ניסיתי להמיר דרכו מסד נתונים של 3GB עליו מבוססת אפליקציית Web, הוא טען שהצליח, אולם כשניסיתי להעביר את המידע הוא טען כי ההמרה נכשלה.
בדיקה ב-Management Studio לא הראתה שום זכר לטבלאות שהיו אמורות להיווצר. ייצוא ידני של ה-SQL שהוא הציע ליצור והרצה ידנית ב-Management Studio עבר חלק.
הליך העתקת המידע מורכב מעט ודורש הכרות פנימית עם מבנה הנתונים ועם MySQL ו-SQL Server באופן כללי. עם זאת – מרגע שהכל הוגדר כשורה, למעט חריגים - אין בעיות או הפתעות מיוחדות (חוץ מתאריכי האפס). העתקת המידע מתבצעת בד"כ ב"פרוסות" של כ-10,000 רשומות בפעולה, בתלות בנפח ובגודל הטבלה והזיכרון בשרת המקור והיעד.
חשוב לציין שהתוכנה מתעלמת לחלוטין ממאפיינים ייחודיים ל-MySQL הנעדרים במתחרה המיקרוסופטי, כמו למשל היותן של טבלאות זיכרון ודברים מעין אלו. במקרה של מערכת שנכתבה והותאמה ספציפית ל-MySQL ניתן יהיה לצפות להפתעות רעות מאוד בתחום הביצועים.
המסך הראשי של התוכנה. בצ"מ נמחקו פרטי הטבלאות.
בעז"ה מתישהו – על MySQL בסביבת .NET: רגישויות, ביצועים ועוד ועוד. ואולי גם הדרך ההפוכה – המרה מטבלאות של SQL Server לאלו של MySQL.