Показать сообщение отдельно
Старый 26.04.2006, 13:23   #12  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Я имел в виду возможность указания файла, в котором будут храниться данные, исходя из некого критерия. Например, в зависимости от поля с датой в таблице.

Это называется табличными пространствами?
ОК. В Oracle есть файлы данных и есть табличные пространства. Первое - средсво физического разбиения базы данных, второе - логическое. Каждое табличное пространство состоит из одного и более файлов. При размещении какого либо объекта в БД (таблицы, индекса и т.д.) пользователь может явно задать табличное пространство для размещения.

Допустим, у нас есть табличное пространство tbl1(состоящее из файла данных dt1) и табличное пространство tbl2( состоящее из файлов dt2 и dt3). В Oracle мы можем явно разместить одну таблицу в одном табличном пространстве (например, InventTrans), а другую в другом (например, CustTrans). При этом таблица InventTrans будет размещена в файле данных dt1 (так как tbl1 содержит только один файл данных), а таблица CustTrans будет как то размазана по двум файлам (dt2 и dt3). Как именно она будет там размазана - на усмотрение Оракла. Естесвенно файлы данных dt1-dt3 могут быть размещены на различных устройствах.

О партицианировании речь заходит тогда, когда мы хотим явно управлять разбиением объекта по разным табличным пространствам. Например, у нас есть большая LedgerTrans и мы хотим, чтобы все данные за текущий год лежали в одном табличном пространстве (tbl1), а данные за предыдущие года в другом (tbl2).
Но при этом мы не забываем о том, что tbl3 состоит из dt2 и dt3 и как уж данная партиция (предыдущие года) распределятся по этим файлам - оракл его ведает.
За это сообщение автора поблагодарили: mazzy (5), glibs (1).