از این tablespace برای نگهداری موقت داده های بانک اطلاعاتی جهت انجام یک سری عملیات استفاده می شود . برای مثال اوراکل در زمان مرتب سازی داده ها، ابتدا از فضای PGA که در ساختار RAM تشکیل شده است، استفاده می کند و در صورت نبود فضای کافی، به سراغ temporary tablespace خواهد رفت و از این قسمت به عنوان یک فضای کمکی برای PGA استفاده می کند.
مدت زمان نگهداری این داده ها به حیات session کاربران بستگی دارد به طوری که با خاتمه یافتن session هر کاربر ، داده های موجود در فضای temporary tablespace که توسط آن session ایجاد شده است نیز از بین می رود . این عملیات توسط یکی از فرآیندهای پس زمینه ی اوراکل به نام SMON انجام می شود
در صورت حذف این tablespace ، اوراکل به صورت خودکار و پس از اولین راه اندازی مجدد، اقدام به ساخت یک temporary tablespace جدید می کند این قابلیت از اوراکل 11g اضافه شده است .
ساخت temporary tablespace
نحوه ایجاد tablespace temp یا اعمال تغییرات در ساختار آن همانند tablespace های دائمی می باشد که قبلا توضیح داده شد، با این تفاوت که بجای دستور create tablespace از create temporary tablespace و همچنین به جای عبارت datafile از tempfile استفاده می شود
بعنوان مثال توسط دستور زیر، یک temp tablespace به نام temp_tbs و tempfile ای با نام temp01.dbf و حجمی معادل 10 گیگابایت ایجاد می شود.
SQL> CREATE TEMPORARY TABLESPACE temp_tbs TEMPFILE ‘/Oracle/temp01.dbf’ SIZE 10G;
نکته: به صورت پیش فرض اگر اندازه tempfile مشخص نشود فضای ایجاد شده برای temporary tablespace، در هنگام ساخت، 1 مگابایت در نظر گرفته می شود .
افزایش و کاهش فضای temporary tablespace
برای افزایش فضای یک temp tablespace می توان به دو روش زیر عمل کرد :
1.اضافه کردن tempfile جدید به temp tablespace :
برای مثال در دستور فوق یک tempfile جدید با نام temp02.dbf با حجمی برابر با 5 گیگابایت به فضای temp_tbs اضافه شده است.
SQL> ALTER TABLESPACE temp_tbs ADD TEMPFILE ‘/Oracle/temp02.dbf’ SIZE 5G;
نکته : برای اعمال تغییرات در temp tablespace بر خلاف دستور ساخت آن، نیازی به کلمه temporary قبل از tablespace نمی باشد.
2.افزایش حجم یکی از tempfile های temp tablespace :
برای این منظور طبق مثال زیر ، حجم temp02.dbf به 20 گیگابایت افزایش می یابد.
SQL> ALTER DATABASE TEMPFILE ‘/Oracle/temp02.dbf’ RESIZE 20G;
و همچنین برای فشرده سازی و کاهش فضای یک temp tablespace از روش زیر استفاده می شود :
SQL> ALTER TABLESPACE temp_tbs SHRINK SPACE;
توسط دستور بالا اندازه temp_tbs به مقدار پیش فرض، یعنی 1 مگابایت کاهش پیدا می کند البته در صورتی که sessionای در حال استفاده از این فضا نباشد.
همچنین اگر قرار باشد تا فقط حجم یکی از tempfile های temp_tbs به مقداری مشخص کاهش یابد از دستور زیر استفاده می شود :
SQL> ALTER TABLESPACE temp_tbs SHRINK SPACE TEMPFILE ‘/Oracle/temp01.dbf’ KEEP 2G;
نکته : اگر در زمان کاهش حجم، temp_tbs ، فقط شامل یک tempfile باشد، آن tempfile به میزان مشخص شده در پارامتر keep کاهش می یابد و همچنین اگر شامل دو یا چند tempfile باشد در صورت مشخص کردن tempfile مورد نظر ، فقط همان tempfile کاهش می یابد ولی اگر نام tempfile مشخص نگردد، همه tempfile های آن temp tablespace را به مقدار پیش فرض یعنی 1 مگابایت کاهش داده و فقط یک tempfile را به اندازه ای تبدیل می کند که حاصل جمع آن با مابقی tempfile ها برابر با مقدار تعیین شده در پارامتر keep شود.
online/offline کردن temp tablespace
برخلاف tablespaceهای دائمی، نمی توان یک temporary tablespace را به صورت یکجا offline کرد. ولی اگر temp tablespace بیش از یک tempfile داشته باشد می توان یکی از tempfile ها را توسط دستور زیر offline و سپس در صورت نیاز مجددا online کرد :
SQL>ALTER DATABASE TEMPFILE ‘/Oracle/temp02.dbf’ OFFLINE;
SQL>ALTER DATABASE TEMPFILE ‘/Oracle/temp02.dbf’ ONLINE;