2012-08-07 11 views
17

मैं एक मेज बनाने रहा हूँ में से अस्थायी खंड विस्तार करने के लिए जब मैं googled मैं आमतौर पर पाया ORA-01652 त्रुटि दिखा रहा त्रुटिORA-01652</p> <pre><code>create table tablename as select * for table2 </code></pre> <p>की तरह टेबल-स्पेस

ORA-01652 Unable to extend temp segment by in tablespace 

हो रही असमर्थ जैसे

Unable to extend temp segment by 32 in tablespace 

मैं नहीं मिल रहा है किसी भी तरह के value.I इस क्वेरी भाग गया कुछ मूल्य

select 
    fs.tablespace_name       "Tablespace", 
    (df.totalspace - fs.freespace)    "Used MB", 
    fs.freespace        "Free MB", 
    df.totalspace        "Total MB", 
    round(100 * (fs.freespace/df.totalspace)) "Pct. Free" 
from 
    (select 
     tablespace_name, 
     round(sum(bytes)/1048576) TotalSpace 
    from 
     dba_data_files 
    group by 
     tablespace_name 
    ) df, 
    (select 
     tablespace_name, 
     round(sum(bytes)/1048576) FreeSpace 
    from 
     dba_free_space 
    group by 
     tablespace_name 
    ) fs 
where 
    df.tablespace_name = fs.tablespace_name; 

से लिया: Find out free space on tablespace

और मैंने पाया कि टेबल-स्पेस मैं उपयोग कर रहा हूँ वर्तमान में खाली स्थान 32GB की चारों ओर है। मैंने

create table tablename tablespace tablespacename 
as select * from table2 

जैसी तालिका बनाने की कोशिश की लेकिन मुझे एक ही त्रुटि मिल रही है। क्या कोई मुझे एक विचार दे सकता है, जहां समस्या है और इसे कैसे हल किया जाए। आपकी जानकारी के लिए चयन कथन मुझे 40,000,000 रिकॉर्ड लाएगा।

+0

क्या आप डेटा फाइलें भर चुके हैं? – Sathya

उत्तर

30

मुझे इसका समाधान मिला। टीईएमपी नामक एक अस्थायी टेबलस्पेस है जिसे अलग-अलग, जुड़ने आदि जैसे संचालन के लिए डेटाबेस द्वारा आंतरिक रूप से उपयोग किया जाता है। चूंकि मेरी क्वेरी (जिसमें 4 शामिल हैं) लगभग 50 मिलियन रिकॉर्ड प्राप्त करते हैं, इसलिए टीईएमपी टेबलस्पेस में सभी डेटा पर कब्जा करने के लिए उतनी जगह नहीं है। इसलिए क्वेरी विफल हो जाती है भले ही मेरे टेबल स्पेस में खाली स्थान हो। इसलिए, टीईएमपी टेबलस्पेस के आकार को बढ़ाने के बाद समस्या हल हो गई थी। उम्मीद है कि यह किसी भी मुद्दे के साथ किसी की मदद करता है। धन्यवाद :)

+4

एक अन्य दृष्टिकोण जो * मदद * कर सकता है यह जांचना है कि क्या क्वेरी के लिए वैकल्पिक योजना है, जिसके लिए बहुत अधिक अस्थायी स्थान की आवश्यकता नहीं है - उदा। एक तरह से या एक विलय से बचकर। निश्चित रूप से हमेशा आसान या संभव नहीं है। –

+1

और यदि आप सोचते हैं कि डेटा को फिट करने के लिए आप अपने टेम्पलेट टेबलस्पेस को कैसे कम कर सकते हैं, तो यह शानदार उत्तर देखें: http://stackoverflow.com/a/1878732/210114 –

5

निम्न आदेश चलाकर एक नया datafile बनाएँ:

alter tablespace TABLE_SPACE_NAME add datafile 'D:\oracle\Oradata\TEMP04.dbf'    
    size 2000M autoextend on; 
1

आप एक नया datafile बनाने की जरूरत नहीं है, आप अपनी मौजूदा टेबलस्पेस डेटा फ़ाइलों का विस्तार कर सकते हैं।

मौजूदा टेबल-स्पेस के लिए फ़ाइल नाम निर्धारित करने के लिए निम्नलिखित निष्पादित करें:

ALTER DATABASE DATAFILE 'D:\ORACLEXE\ORADATA\XE\SYSTEM.DBF' RESIZE 2048M; 
:

SELECT * FROM DBA_DATA_FILES; 

फिर datafile इस प्रकार के आकार का विस्तार (पूर्व क्वेरी से एक के साथ फ़ाइल नाम की जगह)

संबंधित मुद्दे