Отображение OWB зависает или занимает слишком много времени - возможна ли блокировка?

Я новичок в Oracle Warehouse Builder 11gR2, но он мне уже не нравится! Я использую его на виртуальной машине с 2 ГБ ОЗУ и на XP 32 бит.

У меня есть 9 сопоставлений из плоских файлов в цель, из исходного реляционного BD в цель и т. д. Проблема в 3 из этих сопоставлений, по-видимому, заключается в том, что я соединяю таблицы как из источника, так и из области сцены. Я не знаю, имеет ли это значение, но моя исходная БД находится на той же машине, что и рабочая область (цель), но в разных табличных пространствах.

Я могу показать вам:
1- Как я создал исходные пользовательские табличные пространства БД:

CREATE TABLESPACE insrc DATAFILE 'C:\IN\tablespaces\in_src.dbf' SIZE 100M;
CREATE TEMPORARY TABLESPACE insrc_temp TEMPFILE 'C:\IN\tablespaces\insrc_temp.dbf' SIZE 50M;
CREATE USER insrc IDENTIFIED BY insrc DEFAULT TABLESPACE insrc TEMPORARY TABLESPACE insrc_temp QUOTA 0 on system;
GRANT ALL PRIVILEGES TO insrc;
-- Grant this role to be able to import a dump file
GRANT IMP_FULL_DATABASE to insrc;
-- Grant this role to be able to export to a dump file
GRANT EXP_FULL_DATABASE to insrc;

а затем в строке cmd я импортировал вот так: imp SYSTEM/%PASSWORD_DO_ORACLE% FROMUSER=trab2 TOUSER=insrc file='trab2.DMP'

2- Как я создал табличные пространства для табличных пространств и ролей пользователей целевой рабочей области:

 CREATE TABLESPACE indw DATAFILE 'C:\IN\tablespaces\indw.dbf' SIZE 128M AUTOEXTEND ON NEXT 512K MAXSIZE 250M;
CREATE TEMPORARY TABLESPACE indwtemp TEMPFILE 'C:\IN\tablespaces\indwtemp.dbf' SIZE 3M AUTOEXTEND ON NEXT 512K MAXSIZE 200M;
CREATE USER indw IDENTIFIED BY indw DEFAULT TABLESPACE indw TEMPORARY TABLESPACE indwtemp;
ALTER USER indw account unlock;
GRANT CREATE SESSION TO indw;
-- grant all system privileges
GRANT ALL PRIVILEGES TO indw; 
-- grant all ROLES
GRANT "OLAP_XS_ADMIN" TO "INDW" ;
GRANT "WFS_USR_ROLE" TO "INDW" ;
GRANT "DELETE_CATALOG_ROLE" TO "INDW" ;
GRANT "HS_ADMIN_SELECT_ROLE" TO "INDW" ;
GRANT "CWM_USER" TO "INDW" ;
GRANT "SPATIAL_WFS_ADMIN" TO "INDW" ;
GRANT "OLAP_DBA" TO "INDW" ;
GRANT "OWB$CLIENT" TO "INDW" ;
GRANT "RESOURCE" TO "INDW" ;
GRANT "APEX_ADMINISTRATOR_ROLE" TO "INDW" ;
GRANT "OWB_DESIGNCENTER_VIEW" TO "INDW" ;
GRANT "CTXAPP" TO "INDW" ;
GRANT "SPATIAL_CSW_ADMIN" TO "INDW" ;
GRANT "GATHER_SYSTEM_STATISTICS" TO "INDW" ;
GRANT "AUTHENTICATEDUSER" TO "INDW" ;
GRANT "CONNECT" TO "INDW" ;
GRANT "HS_ADMIN_EXECUTE_ROLE" TO "INDW" ;
GRANT "PLUSTRACE" TO "INDW" ;
GRANT "LOGSTDBY_ADMINISTRATOR" TO "INDW" ;
GRANT "JAVADEBUGPRIV" TO "INDW" ;
GRANT "XDB_WEBSERVICES_WITH_PUBLIC" TO "INDW" ;
GRANT "XDBADMIN" TO "INDW" ;
GRANT "XDB_WEBSERVICES_OVER_HTTP" TO "INDW" ;
GRANT "CSW_USR_ROLE" TO "INDW" ;
GRANT "OLAPI_TRACE_USER" TO "INDW" ;
GRANT "JAVAIDPRIV" TO "INDW" ;
GRANT "DBFS_ROLE" TO "INDW" ;
GRANT "ADM_PARALLEL_EXECUTE_TASK" TO "INDW" ;
GRANT "AQ_ADMINISTRATOR_ROLE" TO "INDW" ;
GRANT "JAVA_DEPLOY" TO "INDW" ;
GRANT "OEM_MONITOR" TO "INDW" ;
GRANT "XDB_WEBSERVICES" TO "INDW" ;
GRANT "JAVAUSERPRIV" TO "INDW" ;
GRANT "MGMT_USER" TO "INDW" ;
GRANT "OWB_USER" TO "INDW" ;
GRANT "JAVA_ADMIN" TO "INDW" ;
GRANT "JMXSERVER" TO "INDW" ;
GRANT "EXECUTE_CATALOG_ROLE" TO "INDW" ;
GRANT "SCHEDULER_ADMIN" TO "INDW" ;
GRANT "DATAPUMP_IMP_FULL_DATABASE" TO "INDW" ;
GRANT "WM_ADMIN_ROLE" TO "INDW" ;
GRANT "ORDADMIN" TO "INDW" ;
GRANT "AQ_USER_ROLE" TO "INDW" ;
GRANT "DATAPUMP_EXP_FULL_DATABASE" TO "INDW" ;
GRANT "SELECT_CATALOG_ROLE" TO "INDW" ;
GRANT "RECOVERY_CATALOG_OWNER" TO "INDW" ;
GRANT "OLAP_USER" TO "INDW" ;
GRANT "DBA" TO "INDW" ;
GRANT "JAVASYSPRIV" TO "INDW" ;
GRANT "XDB_SET_INVOKER" TO "INDW" ;
GRANT "HS_ADMIN_ROLE" TO "INDW" ;
GRANT "EJBCLIENT" TO "INDW" ;
GRANT "OEM_ADVISOR" TO "INDW" ;
ALTER USER "INDW" DEFAULT ROLE "EXP_FULL_DATABASE","IMP_FULL_DATABASE";
-- Might be needed ...just in case
-- run plustrace.bat before grant this privilege
-- GRANT plustrace TO indw;
/* To create a database directory, a user requires the CREATE DIRECTORY and DROP DIRECTORY privileges.
When you create a Warehouse Builder user, these privileges are not automatically granted 
to the user. Therefore, the database administrator must explicitly grant these privileges 
to the Warehouse Builder user.*/
GRANT CREATE ANY DIRECTORY TO indw;
GRANT DROP ANY DIRECTORY TO indw;

Одним из сопоставлений с проблемами является CLIENTS_MAPPING, для которого нужны CUSTOMERS (из источника), COUNTRIES (из источника), DEMOGRAPHY (из цели) и CLIENT_LAST_BUY (тоже из цели). Предполагается, что вставка состоит из 50 000 строк и занимает более 30 минут, а в таблице CLIENTS вообще нет данных.

Эта проблема также возникает при других сопоставлениях, включающих исходную и целевую таблицы. Когда я использую просто из того или иного места, нет никаких проблем.

Я оставлю вам мой автоматически сгенерированный код Power Designer для таблицы CLIENTS, как указано выше:

create table CLIENTS 
(
   CLIENT_ID            NUMBER               not null,
   CLIENT_ID_SRC        NUMBER,
   COUNTRY_ID_SRC       CHAR(2 BYTE),
   DEMOG_ID             NUMBER               not null,
   CLIENT_NAME          VARCHAR2(70),
   CLIENT_BIRTH_YEAR    NUMBER(4),
   CLIENT_PHONE         VARCHAR2(25),
   CLIENT_CREDIT_LIMIT  NUMBER,
   CLIENT_EMAIL         VARCHAR2(30),
   CLIENT_STREET_ADDRESS VARCHAR2(40),
   CLIENT_LAST_BUY      DATE,
   CLIENT_COUNTRY       VARCHAR2(40),
   CLIENT_STATE_PROVINCE VARCHAR2(50),
   CLIENT_CITY          VARCHAR2(50),
   constraint PK_CLIENTS primary key (CLIENT_ID)
);

/*==============================================================*/
/* Index: CLIENT_INFO_FK                                        */
/*==============================================================*/
create index CLIENT_INFO_FK on CLIENTS (
   DEMOG_ID ASC
); 

alter table CLIENTS
   add constraint FK_CLIENTS_INFO foreign key (DEMOG_ID)
      references DEMOGRAPHY (DEMOG_ID);

Я вхожу в графический интерфейс OWB как rep_owner (со всеми разрешениями). Странно то, что у моего коллеги именно это отображение работает на его машине в OWB 11gR1 и без проблем. Но он импортировал исходную БД целевому пользователю... и это единственное, что он сделал.

Кто-нибудь может мне помочь?


person neverMind    schedule 23.05.2011    source источник


Ответы (1)


Проверьте DBA_RESUMABLE, возможно, вам не хватает временного табличного пространства.

Возможно, вы захотите попытаться максимально объединить свои табличные пространства. Чем больше вы разделяете свое хранилище, тем легче Oracle будет исчерпать пространство.

person Jon Heller    schedule 23.05.2011
comment
Вы говорите, что я должен попытаться, например, иметь одинаковые временные файлы как для исходного, так и для целевого.. Я попробую по умолчанию, просто чтобы посмотреть, будет ли так работать лучше. Спасибо - person neverMind; 23.05.2011
comment
Я изменил пользователей из источника и цели, чтобы использовать временное табличное пространство по умолчанию. Каждый пользователь использует свое табличное пространство, но файлы данных находятся не в папке oradata/sid, созданной моим коллегой. Может ли это иметь такое огромное влияние? Что я могу сделать еще, чтобы остановить выполнение сопоставления? Потому что это не дает мне ошибок или времени ожидания ... но прошло более часа, а у меня все еще есть 0 строк: ( - person neverMind; 23.05.2011
comment
Если ваши схемы находятся в одной и той же базе данных, обычно лучше всего, если это возможно, использовать для них одни и те же табличные пространства. Например, с вашими текущими настройками вы не могли отсортировать результирующий набор размером более 200 МБ. Если вы объедините два временных табличных пространства, максимальный размер увеличится до 250 МБ. В версии 11g хороший способ увидеть, что происходит с запущенным запросом, — просмотреть активный отчет: select dbms_sqltune.report_sql_monitor(sql_id=>'[YOUR SQL ID]', type=>'active') from dual; - person Jon Heller; 24.05.2011
comment
Итак, я попытаюсь поместить одни и те же схемы, исходную и целевую, в одни и те же табличные пространства и использовать временную по умолчанию. Считаете ли вы, что максимальный размер является проблемой? Или я должен использовать другой способ создания табличного пространства ( - person neverMind; 24.05.2011
comment
Просто чтобы дать вам некоторые отзывы: я разделял табличные пространства (обычные и временные, которые я создал) для источника и цели, и одно из этих 3 сопоставлений, которые используют src и цель, уже правильно отображаются. Но мне пришлось отказаться от ограничений fk, потому что они доставляют мне проблемы, но я не знаю, как это сделать, потому что я сначала заполнил дочерние таблицы. Как вы думаете, критично ли это в DW? Отказ от ограничений внешних ключей? Я так не думаю... но я все равно буду держать вас в курсе. Я думаю, что люди этого заслуживают. - person neverMind; 25.05.2011
comment
@Nevermind: Да, я бы сказал, что очень важно отключить или удалить как можно больше ограничений и индексов. Обычно гораздо быстрее перестраивать объекты, чем изменять их по одной строке за раз в качестве побочного эффекта какой-либо другой операции. - person Jon Heller; 27.05.2011