SQL Server+Access מול Btrieve+Magic

גרי רשף

New member
SQL Server+Access מול Btrieve+Magic

אני עובד על הסבת מערכת Magic ל-SQL Server עם ממשק ב-Access. מנסיונות ראשונים אני רואה שהמערכת החדשה איטית מהישנה (אני נעזר ב- Pass Through Queries בטכנולוגיית DAO). מה הסיבה לכך: האם ה-SQL Server איטי יותר מ-Btrieve? האם מעבר ל-ADO ישפר באופן משמעותי את התוצאות? האם היתרון של ה-SQL Server הוא בביצוע פעולות (Update, Insert, Delete) ולא בשליפת נתונים (Select)?
 

philips

New member
רציתי גם לשאול

רציתי להרחיב את השאלה.... קצת... ואני מבקש שרק מישהו שבאמת יודע יגיב... גרי שאל על מעבר מ MAGIC ל SQLSERVER ...אני רוצה להוסיף על מעבר מ MAGIC ל ACCESS, מעבר מ ACCESS ל SQL SERVER וכו´.. האם מישהו כאן יכול לתת סקירה מקיפה של הנושא.. מה הבעיות העיקריות..מה צריך...מה היתרונות והחסרונות.. משך המיגרציה של הקוד וכו´ וכו´ וכו´ כל תשובה מקצועית תהיה טובה...
 

eli_leiba

New member
לדעתי יש לבצע רביזיה על המערכת

לבדוק את ה erd שלה ולראות היכן יש להוסיף אינדקסים והיכן להוריד כמו"כ נכוןן שטכנולגיות dao מיושנת היום והמעבר ל ado אכן ישפר. הדבר קשור לכך שרוטינות הגישה של sql server לנתונים עצמן הן בטכנולוגיית oledb שגם ה ado בנוי עליה sql server מבצע באותה יעילות update,insert,delete , select והמעבר ל ADO ישפר את כולן
 

duducohn

New member
סוגי בסיסי נתונים

סקירה קצרה Btrieve הוא בסיס נתונים המבוסס על המודל ההיררכי (דומה לצורה של עץ). כאשר יש צורך לבצע פעולת קריאה/מחיקה/עדכון של רשומה אחת מתבצעות גישה אחת או שתיים לדיסק ובזה נגמר הסיפור. כאשר יש צורך לבצע פעולה עם קובץ שלם (טבלה) אחד או יותר יכולות להיות מספר גישות לדיסק (תלוי בגדלי הקבצים) והעיבוד נעשה פר רשומה וברצף. Access וגם SQL-Server וכל בסיס הנתונים המודרניים הם בסיסי נתונים המבוסס על המודל הרלציוני (מבנה של טבלאות). כאשר יש צורך לבצע פעולת קריאה/מחיקה/עדכון של רשומה אחת בדומה למה שקורה ב - Btrieve מתבצעות גישה אחת או שתיים לדיסק ובזה נגמר הסיפור. אולם כאשר יש צורך לבצע פעולה עם מספר טבלאות. וכאן מתחיל ההבדל המשמעותי והחשוב ביותר. מתבצעת בין הטבלאות פעולה הנקראת "מכפלה קרטזית" שמשמעותה על כל שורה בטבלה אחת נוצרות כל השורות של הטבלה האחרת. דוגמא: אם בטבלה א´ 1000 שורות ובטבלה ב´ 500 שורות (סה"כ 1500 שורות בשתי הטבלאות) הרי המכפלה הקרטזית יוצרת טבלה בת 1000 כפול 500 סה"כ 500,000 שורות בטבלה החדשה. ואם שלוש טבלאות שבכל אחת מהן 1000 שורות אז נוצרת טבלה בת מיליארד שורות (1000 כפול 1000 כפול 1000) וכן הלאה. כל זאת לפני שמתחיל תהליך העיבוד של הנתונים. זו הסיבה המרכזית להבדלים בביצועים בין סוגי המערכות השונים. המודל הרלציוני הוא יותר חדש וכמעט כל בסיסי הנתונים המתקדמים עובדים לפיו. אז מדוע בכל זאת. קיימות מספר סיבות ואציין שהעיקרית מביניהן לדעתי היא שמודל בסיס הנתונים הרלציוני בשונה מההיררכי (קיימים עוד מודלים כמו הרשתי וכדומה אבל לא נכנס אליהם) הוא מבוסס על תורה מתמטית (תורת הקבוצות) ולכן הוא מדויק !!! איך בכל זאת מתמודדים עם הבעייה של הביצועים. פשוט מאד הגדל באופן משמעותי ביותר את הזכרון הראשי ( RAM ) של המחשב שבו נמצא בסיס הנתונים. במקרה כזה תוצאות המכפלה הקרטזית ישבו בזכרון הראשי ומכיון שזמן הגישה לזכרון הראשי מהיר בכמה סדרי גודל לעומת הדיסק הקשיח לכן אתה עשוי לחוש בשיפור דרמטי בביצועים. אם אתה צריך ייעוץ מקצועי יותר בתחום זה מעבר לנאמר לעיל זה הדואר האלקטרוני שלי: [email protected].
 

גרי רשף

New member
בעזרת Access 2..

ב-Access 2 (ווינדוס 3.11 למי שעדיין זוכר..) היה ממשק ל-Btrieve. לא ניסיתי אותו מעולם, אבל אפשר לנסות- ליצור קישור מ-Access 2 ל-Btrieve ומ-Access 2000 (או 97) ל-Access 2.. אפשרות אחרת- לנסות ולייצא את הנתונים מ-Btrieve לקבצי טקסט ולייבא אותם ל-Access.
 

eli_leiba

New member
בעזרת dts של sql server

תגדיר odbc ל מגיק כ source ואת ה access mdb כ target ותפעיל את ה dts package dts הוא ה export/import wizard של sql server ואפשר להשתמש בו כמעביר מידע גם אם מקורות המידע אינם sql server כגון access או מגיק
 

יויו.

New member
בעזרת

אני מניח שלמגי´ק ישנה האפשרות ליצא נתונים לקובץ ASCII. (קובץ טקסט טהור). במקרה כזה לאחר יצוא לקובץ ASCII יש לשנות את סוג הקובץ שנוצר לסיומת TXT. לעבור ל Access ולבצע פעולה של יבוא (קובץ, יבוא). לגבי הפורמט של הנתונים אפשר להשתמש במאקרו TransferText ואז גם לבצע זאת אוטומטית.
 

duducohn

New member
בעזרת

מצטער היתה טעות בשם וההודעה בשם יויו היתה שלי. תוכן ההודעה של יצוא ויבוא של הנתונים עדיין תקף.
 
למעלה