الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف أنشئ Cluster Table و Cluster Index وعندي جداول فيها بيانات

Featured Replies

بتاريخ:

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

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

أريد طريقة إنشاء Cluster Table & Cluster Index في حالة أنه لدي قاعدة بيانات جاهزة وفيها بيانات أكثر من سنة والحفاظ على هذه البيانات.
شاكرين تعاونكم سلفاً

بتاريخ:

اخي الكريم
لعمل Clustered Tables

يجب أولا أن يكون لديك CREATE TABLE or CREATE ANY TABLE system privilege

لنفرض أننا نريد عمل جدولين emp and dept في cluster

ما عليك هو اولا عمل Cluster والتي تتطلب CREATE CLUSTER system privilege وكذلك quota for the tablespace أو عوضا عنها UNLIMITED TABLESPACE system privilege

سنقوم بعمل أمر لعمل CLUSTER والذي يخزن الجدولين المذكورين أعلاه ونريد أن نعملهم clustered by the deptno column

CREATE CLUSTER emp_dept (deptno NUMBER(3))
SIZE 600
TABLESPACE users
STORAGE (INITIAL 200K
NEXT 300K
MINEXTENTS 2
MAXEXTENTS 20
PCTINCREASE 33);



لا تقلق من عدم وجود INDEX حيث يتم عمله

بعد نجاحنا في ما تم نذهب لعمل الجدولين كما اتفقنا Clustered Tables

CREATE TABLE emp (
empno NUMBER(5) PRIMARY KEY,
ename VARCHAR2(15) NOT NULL,
. . .
deptno NUMBER(3) REFERENCES dept)
CLUSTER emp_dept (deptno); 

CREATE TABLE dept (
deptno NUMBER(3) PRIMARY KEY, . . . )
CLUSTER emp_dept (deptno);


تلاحظ اننا عملنا الجدولين باستخدام ال cluster المسمي emp_dept والذي تم عمله أولا


نأتي لعمل Cluster Indexes
تتطلب صلاحية CREATE ANY INDEX system privilege لعمل ذلك وكذلك quota for the tablespace أو بدلا عنها كما ذكرنا سلفا UNLIMITED TABLESPACE system privilege

لكن هنا وبخلاف ما تريد أنت ف cluster index يجب عمله قبل اضافة اي صفوف في clustered table وعلي رأي الاطباء علي معده فاضيه

لعمله
تذكر أن لدينا emp_dept cluster والذي تم عمله اول شئ حيث سنقوم بعمل cluster index له (emp_dept cluster)

CREATE INDEX emp_dept_index
ON CLUSTER emp_dept
TABLESPACE users
STORAGE (INITIAL 50K
NEXT 50K
MINEXTENTS 2
MAXEXTENTS 10
PCTINCREASE 33);



بقي لي أن أجيبك علي جداولك الموجوده اصلا فانه وبالله التوفيق لا تستطيع اضافة جداول موجوده وموجد بها بيانات الي cluster
يمكنك عمل جداول جديدة كما تم شرحه ومن ثم نقل البيانات من الجداول القديمه واذكرك

insert into copy_emp select * from emp


تحياتي

بتاريخ:
  • كاتب الموضوع

حفظــك الله ورعاك ونفع بك وبعلمك ... وجزاك الله خير على تعاونك

بتاريخ:
  • كاتب الموضوع

تعديل بسيط على رد الأخ الفاضل Mageed_Ahmed
وهو ترتيب إنشاء الجدولين 1- Dept
2- Emp

CREATE TABLE dept (
deptno NUMBER(3) PRIMARY KEY, . . . )
CLUSTER emp_dept (deptno);

CREATE TABLE emp (
empno NUMBER(5) PRIMARY KEY,
ename VARCHAR2(15) NOT NULL,
. . .
deptno NUMBER(3) REFERENCES dept)
CLUSTER emp_dept (deptno); 



ويجب إنشاء الجدول رقم 1 قبل الجدول رقم 2 كما هو موضح أعلاه .. لماذا؟ لأنه يوجد في الجدول رقم 2 حقل مرتبط بالجدول رقم 1 وهو الحقل Deptno

فقط هذه المعلومات للمبتدئ إذا قام بنسخ الرد السابق ستظهر له مشكلة وقمت بالتوضيح لتفادي ذلك.. وجزاكم الله على كل حال.

  • بعد 1 شهر...
بتاريخ:

سؤال لفهم الموضوع اكثر

ما هى فائدة الcluster حتى استطيع افهم الموضوع وشكراً

بتاريخ:

بارك الله فيكم أخي عبد المنعم وأشكر الاخ بهاء علي سؤاله وسنحاول سويا الان فهم cluster table وكذلك clustering index وماذا لو تم تطبيقه علي partitioned tables

في نهاية ردي اتمني أن تتفهم معناه وكذلك جدواه والله تعالي ولي التوفيق وصلي وسلم علي نبينا محمد وعلي اهله وصحبه وزوجاته الطاهرات أمهات المؤمنين وعن أمنا وسيدتنا المبرأه من فوق سبع سماوات بنت الصديق اللهم امين

cluster table

يعرف بأنه optional technique لتخزين بيانات جدول والغرض الريسي منه أخذ بيانات جدول أو أكثر بينهما علاقة وعمليا تخزين بيانات كل من الجدولين هؤلاء علي نفس البلوك داخل القرص وتعرف هذه البيانات المشتركة بأنها 'Cluster Key'

يعني جدول emp و dept بينهما عمود مشترك بياناته واحده وهي deptno فبدلا من تخزينها مرتين مرة لكل جدول تخزن مرة واحدة لو أن هناك table Clustering علي الجدولين هذين ففما يقلل السعة التخزينية ثمة أهمية رائعة أخري أخي الكريم وهو انه يتم عمل Index علي ال clustered columns وأهميه ثالثة أن ال cluster يحسن استرجاع البيانات في join queries يعني بيقوم بدور ال expiditor ويجعل استرجاع البيانات ب single IO operation

وتلحظ من ذلك أنه لا يؤثر مطلقا علي relational model أي بنية جدوالك

بكلمات أكثر دقة فهو a transparent 'backend' data storage technique فقط وله الفوائد السابقة

أما عن ال clustering index فيمكنك قراءة هذا المقال الفوق رائع وبالتوفيق

http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.admin.perf.doc/doc/c0021580.html

تحياتي
أحمد عبد المجيد

  • بعد 4 سنة...
بتاريخ:

جزاكم الله خيرا على تفاعلكم ، ونفع الله بكم اجمعين

لكن عندي سؤال اريد اعرف اجابته لأن عندي مقابلة والسؤال ده مهم 

ما هو ال hash cluster وكيف انشاؤه وفائدته

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.