الانتقال إلى المحتوى

كيف أزيد من عدد الـ Partitions للجدول في حالة كبر حجم الجدول.


‫عبدالمنعم أحمد‬‎

Recommended Posts

السلام عليكم ورحمة الله وبركاته

الأخوة الكرام ..

عندما أقوم بتقسيم جدول إلى عدة Partitions بناءً على التاريخ. هل أعمل حساب الفترة المستقبلية.

مثال: قمت بإنشاء جدول طلبات العملاء ومن ضمن حقوله (تاريخ الطلب)، وقمت بعمل التقسيمات التالية:

- Partition للعام 2014.

- Partition للعام 2015.

- Partition للعام 2016.

هل هذه الطريقة عملية ومجدية ومتبعة في الأنظمة العملاقة.

طيب .. إذا افترضنا نعم. هل من المعقول أن شركة أوراكل لم تعمل حسابها إمكانية إضافة Partition مستقبلاً.

 

رجاء من الأخوة الكرام أن نفتح الموضوع للنقاش لأنه مهم جداً ويعاني منه الكثير، مما يضطر أكثر المبرمجين إلى فتح مستخدم (Schema) لكل عام بشكل مستقل هروباً من زيادة حجم الجداول وتظهر عملية الاستعلامات بشكل بطيء جداً.

 

استفسار آخر:

إذا كان لدي جدول يحتوي على 5 مليون سجل وقمت بعمل تقسيم Partitions لهذا الجدول مثلاً ‘لى 5 Partitions. كيف أقوم بعملية الاستعلام من هذا الجدول في ظل وجود الأقسام الخمسة؟

 

شاكرين تعاونكم معنا سلفاً.

رابط هذا التعليق
شارك

مشكور أخي الكريم feco407

رابط هذا التعليق
شارك

الأخ العزيز feco407

قرأت المواضيع المرتبط بالرابطين أعلاه وأشكرك جداً على هذه الإيجابية والتعاون.

ويبقى سؤال هل الـ Interval Partition ممكن على أوراكل 10g؟

لأنه ظهرت لي رسالة خطأ مع العلم:

- استخدم أوراكل 10g

هذا المثال:

create table
pos_data (
   start_date        DATE,
   store_id          NUMBER,
   inventory_id      NUMBER(6),
   qty_sold          NUMBER(3))
PARTITION BY RANGE (start_date)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
   PARTITION pos_data_p2 VALUES LESS THAN (TO_DATE('1-1-2010', 'DD-MM-YYYY')),
   PARTITION pos_data_p3 VALUES LESS THAN (TO_DATE('1-2-2010', 'DD-MM-YYYY'))
);

 

- رسالة الخطأ:

ORA-00922: Missing Or Invalid Option

كل التقدير والاحترام للجميع وخصوصاً الذين يكونون في خدمة الآخرين.

رابط هذا التعليق
شارك

وعليكم السلام اخي عبدالمنعم,

 

للأسف لا يمكنك استخدام Interval Partition  على 10g حيث تعتبر هذه الخاصية تحسين جديد على RANGE PARTITION فقط في 11g.

 

ويتوجب عليك في هذه الحالة استخدام Range Partition.

 

تحياتي,

رابط هذا التعليق
شارك

  • بعد 8 سنة...

السلام عليكم عاوز احسب كام فاتورة في العمود ده  issue voucher no مع العلم انه يحتوي على فواتير غير مسجلة وممكن اعرف طريقة عمل دالة count_distinct() over (partition by order by range between and )

20231010_070017.jpg

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية