पंक्ति आंदोलन मुख्य रूप से applied to partition tables है। यह पंक्तियों को विभाजन में स्थानांतरित करने की अनुमति देता है।
SQL> CREATE TABLE part_table (ID NUMBER)
2 PARTITION BY RANGE (ID)
3 (PARTITION p0 VALUES LESS THAN (1),
4 PARTITION p1 VALUES LESS THAN (MAXVALUE));
Table created
SQL> INSERT INTO part_table VALUES (0);
1 row inserted
SQL> UPDATE part_table SET ID = 2;
UPDATE part_table SET ID = 2
ORA-14402: updating partition key column would cause a partition change
जब आप पंक्ति आंदोलन की अनुमति देते हैं, तो आप एक अद्यतन के साथ पंक्तियों स्थानांतरित कर सकते हैं:
SQL> ALTER TABLE part_table ENABLE ROW MOVEMENT;
Table altered
SQL> UPDATE part_table SET ID = 2;
1 row updated
यह पंक्ति आंदोलन अक्षम के साथ, जो डिफ़ॉल्ट है, तो आप एक पंक्ति एक अद्यतन के साथ नहीं ले जा सकते सुविधा अधिकांश मामलों में प्रदर्शन को प्रभावित नहीं करती है: पंक्तियों को संग्रहीत किया जाता है और वैसे ही पूछताछ की जाती है कि सुविधा सक्षम है या नहीं। हालांकि, जब पंक्ति आंदोलन सक्षम होता है, उदाहरण के लिए ALTER TABLE SHRINK SPACE
के साथ पंक्तियों को भौतिक रूप से स्थानांतरित किया जा सकता है (हटाएं + डालने के समान)। यह बदले में इंडेक्स क्लस्टर कारक को प्रभावित कर सकता है, जो कुछ प्रश्नों के प्रदर्शन को प्रभावित कर सकता है।
पंक्ति आंदोलन डिफ़ॉल्ट रूप से अक्षम है क्योंकि इसका तात्पर्य है कि पंक्ति के rowid
बदल सकते हैं, जो ओरेकल में सामान्य व्यवहार नहीं है।
स्रोत
2013-10-17 15:05:52
पंक्ति आंदोलन को सक्षम करने से तालिका को कम करने वाली जगह को कम करने में भी सुविधा मिलती है, जो कुछ मामलों में पुनर्निर्माण के बिना किसी तालिका के आकार को कम करने की अनुमति दे सकता है। –
बहुत बहुत धन्यवाद !! तो अगर हम इसे सक्षम करते हैं तो भी प्रश्न एक ही समय ले रहे हैं। मैं कुछ प्रदर्शन सुधार की उम्मीद कर रहा था। –
पंक्ति आंदोलन प्रदर्शन को प्रभावित कर सकता है। इंडेक्स प्रश्नों के लिए बहुत सारे अतिरिक्त I/O संचालन की आवश्यकता हो सकती है। आप इसे यहां भी पढ़ सकते हैं: http://www.dba-oracle.com/t_enable_row_movement.htm –