برای انجام اینکار میتوان به فرم کلی زیر اینکار را انجام داد:
alter tablespace <tablespace_name> add datafile <url> size <size>;
مثال:
alter tablespace ts add datafile 'd:\root\b.dbf' size 100m;
نکته: مسیر tablespace شما میتواند در شبکه نیز باشد. حتی میتونه تو درایوهای دیگر و هر نوع مدیای ذخیرهسازی نظیر: هارد اکسترنال، فلش، رم و ... باشد.
نکته: اگر هر کدوم از DataFileهای ما از شبکه خارج شوند یا از حالت mount بیرون بیایند موقع start کردن اوراکل به مشکل جدی میخورید و اورکل تا همه DataFileهای مد نظر را نداشته باشد دیتابیس را startup open نمیکند.(به صورت کلی باید DataFile همیشه باشد و بدون نبود DataFile به هیچوجه نمیتوان دیتابیس را startup open کرد برای همین پیشنهاد میکنم که همیشه Backup داشته باشید)
نکته: در این موارد بهترین کار flash recovery است.
نکته: اگر بخواهید یک table را روی چند tablespace پراکنده کنیم باید حتماً partitioning کنید و جالبه بدونید که قبل از ورژن 11g اوراکل اجازه اینکار را اصلاً نمیداد چون اصلاً بحث partitioning مطرح نبود.
س: چرا وقتی میتوان چند DBF را به یک TableSpace اضافه کرد باید از چند TableSpace برای ذخیرهسازی یک جدول استفاده کرد؟
ج: به خاطر سرعت index گذاری و cache اولیه - مثلاً وقتی میگیم select * from person where age =20 اوراکل به صورت پیشفرض اصلاً به where شما گوش نمیدهد اما حالا فرض کنید فضای SGA فضای کافی نباشه که بتونه کل جدول رو لود کنه (این مثال در مورد جداول بسیار بسیار حجیم صحت دارد مثلاً جدول ۱ اگزابایتی) خب شما نمیتونید رم ۱ اگزابایتی پیدا کنید که کش رو تو فضای SGA انجام بده پس کش کامل انجام نمیشه و همونطور که قبلاً گفتم اوراکل در این مورد خورد خورد عمل میکنه و تیکه تیکه دیتا رو برای کش میاره و در این حالت وقتی میخواد بره تیکه تیکه بیاره وقتی میبینه اندازه کش کافی نیست به سرعت میره و فقط اون قسمت where رو پیدا میکنه و کش میکنه و شما اگه partitioning اتون رو بر مبنای age کرده باشید اوراکل به سرعت اون DataFileرو پیدا میکنه و کش میکنه به این حالت میگن (کش اولیه یعنی زمانی که میخواد برای بار اول کش رو انجام بده)
یعنی زمانی که برای کش فضای خالی به اندازه کافی نباشد اوراکل به where شما توجه میکند و از partitioning به نفع خودش استفاده میکند تا به دیتا فایلی برسد که داده ما درون آن است.(این فقط در مورد tableهای وحشتناک سنگین صدق میکند)