none
קישור PARTITION SCHEME לטבלה קיימת RRS feed

  • שאלה

  • היי.

    יש לי טבלה גדולה (מאוד...) , לא מקושרת ל- PARTITION SCHEME.

    אני רוצה להגדיר PARTITION SCHEME ולשייך אותה לטבלה.

    כמה שאני יודע שיש משפטי ALTER מסובכים שכוללים העתקות טבלה וכו'. האם יש משפט ALTER להוספה כזו?

    והאם זה כבר מחלק את הנתונים לפי ה-PARTITION-ים?

    תודה.


    itaigitt
    יום שלישי 14 דצמבר 2010 15:15

תשובות

  • הי איתי,

    לא ניתן לבצע את מה שאתה רוצה במשפט Alter פשוט, Partitioning זה נושא מורכב וכך גם המימוש.

    צירפתי לינק שיעזור לך להבין את השלבים לפתרון - http://www.madeira.co.il/partitioning-on-sql-server/

    בגדול מה שצריך לעשות זה:

    1. Partition Function

    2. Partition Schema

    3. יצירת הטבלה, חדשה, על ה- Partition Schema.

    4. העברת נתונים

    5. rename לטבלאות.

    בקיצור לא מסובך ואפילו מעניין ומאתגר.

    בהצלחה

     

     

     


    אסף שלם
    • סומן כתשובה על-ידי itaigitt יום רביעי 15 דצמבר 2010 09:05
    יום שלישי 14 דצמבר 2010 16:20
  • לגבי הפתרון של יצירת טבלה חדשה - לא עלולה להיות לי בעיה עם ה-rename לטבלאות? הרי ה-rename משנה גם את כל הconstraints והמפתחות ומשאיר אותם לטבלה עם השם החדש.

    מה שאומר, שהטבלה החדשה שאני אקים לא תהיה מקושרת בצורה טובה ל"שאר העולם".... לא?

    יכול להיות שלא הבנתי, אבל יש שם דרך להוסיף PARTITION SCHEME לטבלה קיימת ללא יצירת טבלה חדשה ושינוי שמות, לא? (דרך מס' 1). היא נראית לי יחסית פשוטה יותר:

    1. יצירת filegroups, files.
    2. Partition Function, Partition Schema
    3. מחיקת אינדקסים על השדה שאיתו נקשר את הטבלה ל-PARTITION SCHEME (אם צריך).
    4. קישור ה-PARTITION SCHEME לשדה - CREATE CLUSTERED INDEX......ON [SalesPartitionScheme]([DateOfSale]
    ואז הבעיה של ה-rename לא קיימת, לא?

    האם פספסתי משהו או שאפשר ללכת גם בדרך הזו?

    תודה.



    itaigitt
    • סומן כתשובה על-ידי itaigitt יום רביעי 15 דצמבר 2010 09:05
    יום רביעי 15 דצמבר 2010 07:00

כל התגובות

  • הי איתי,

    לא ניתן לבצע את מה שאתה רוצה במשפט Alter פשוט, Partitioning זה נושא מורכב וכך גם המימוש.

    צירפתי לינק שיעזור לך להבין את השלבים לפתרון - http://www.madeira.co.il/partitioning-on-sql-server/

    בגדול מה שצריך לעשות זה:

    1. Partition Function

    2. Partition Schema

    3. יצירת הטבלה, חדשה, על ה- Partition Schema.

    4. העברת נתונים

    5. rename לטבלאות.

    בקיצור לא מסובך ואפילו מעניין ומאתגר.

    בהצלחה

     

     

     


    אסף שלם
    • סומן כתשובה על-ידי itaigitt יום רביעי 15 דצמבר 2010 09:05
    יום שלישי 14 דצמבר 2010 16:20
  • לגבי הפתרון של יצירת טבלה חדשה - לא עלולה להיות לי בעיה עם ה-rename לטבלאות? הרי ה-rename משנה גם את כל הconstraints והמפתחות ומשאיר אותם לטבלה עם השם החדש.

    מה שאומר, שהטבלה החדשה שאני אקים לא תהיה מקושרת בצורה טובה ל"שאר העולם".... לא?

    יכול להיות שלא הבנתי, אבל יש שם דרך להוסיף PARTITION SCHEME לטבלה קיימת ללא יצירת טבלה חדשה ושינוי שמות, לא? (דרך מס' 1). היא נראית לי יחסית פשוטה יותר:

    1. יצירת filegroups, files.
    2. Partition Function, Partition Schema
    3. מחיקת אינדקסים על השדה שאיתו נקשר את הטבלה ל-PARTITION SCHEME (אם צריך).
    4. קישור ה-PARTITION SCHEME לשדה - CREATE CLUSTERED INDEX......ON [SalesPartitionScheme]([DateOfSale]
    ואז הבעיה של ה-rename לא קיימת, לא?

    האם פספסתי משהו או שאפשר ללכת גם בדרך הזו?

    תודה.



    itaigitt
    • סומן כתשובה על-ידי itaigitt יום רביעי 15 דצמבר 2010 09:05
    יום רביעי 15 דצמבר 2010 07:00
  • הי איתי,

    זו דרך מעשית בהחלט, אך שים לב שאם הטבלה גדולה יהיה לך הרבה זמן של Downtime.

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

    יום טוב


    אסף שלם
    יום רביעי 15 דצמבר 2010 09:02