Уже некоторое время ищем решение,
перейдите к (1) или (2), чтобы пропустить описание, сначала я объясню ситуацию.
Моя фирма обновила нашуэ.и.м..Система, моя основная работа заключается в создании списков, используемых другими в фирме, я беру все свои данные из этой системной базы данных во время обновления, мы преобразовали некоторые данные в соответствии с новой версией, некоторые из них остались, некоторые не былиподделаны и просто напрямую экспортированы в новую базу данных, на отдельном сервере, в основном это успех, новый ERP.система работает, как и предполагалось, однако многие мои списки были разбиты, данные, которые используются в моих списках, отсутствуют / partly_missing / all_there
хорошо, так что проблема в том, что отсутствуют данные, которые мне нужны из старой базы данных, хорошо, объединение нановая и старая база данных должны быть в состоянии сделать это, однако я не хочу дублировать записи, «данные, которые были преобразованы в новую базу данных, также существуют в старой базе данных», поэтому могут существовать два поля «они делают, я попробовал»
так 2. версия моего решения
мне не хватает первичных ключей "база данных iseries", поэтому я пошел на конкатенацию комбинации полей, создающих уникальный ключ, "слишком много времени, чтобы объяснить, как я это сделал"однако в конечном итоге я делаю представление с объединением двух баз данных, проверяя, что никаких записей не существует два раза,
(1), так что это то, что я получил сейчас, представление о комбинации старого и новоговсе данные таблицы построены с проверками на «уникальном» ключе .... каждый раз, когда мне нужны данные, которые были произведены при обновлении, я должен выполнять дорогой запрос для каждой таблицынапример, «некоторые используют эти представления более 40 раз» (Вопрос 1), как я могу «экономически эффективно» взять данные из двух разных схем / баз данных и связать их вместе?
(2) единственное, о чем я могу думатьдать мне такую производительность - это создать индексы вместо созданных мною представлений, однако до сих пор я не смог найти никакой информации о том, как: (Вопрос2) Могу ли я создать индекс по двум таблицам,
моя база данных имеет вид / 400 - iseries, однако меня интересует решение для любого типа базы данных, я очень гибок с ресурсами
: EDIT: код, который используется для создания представления с небольшими изменениями,
SELECT
CTCONO,
CTDIVI,
CTSTCO,
CTSTKY,
CTLNCD,
CTTX40,
CTTX15,
CTPARM,
CTTXID,
CTRGDT,
CTRGTM,
CTLMDT,
CTCHNO,
CTCHID
FROM NEWDB.CSYTAB
UNION
SELECT * FROM OLDDB.CSYTAB
WHERE ( CTCONO,CTDIVI,CTSTCO,CTSTKY,CTLNCD ) NOT IN
(
SELECT A.CTCONO,A.CTDIVI,A.CTSTCO,A.CTSTKY,A.CTLNCD FROM NEWDB.CSYTAB A, OLDDB.CSYTAB B
WHERE A.CTCONO = B.CTCONO
AND A.CTDIVI = B.CTDIVI
AND A.CTSTCO = B.CTSTCO
AND A.CTSTKY = B.CTSTKY
AND A.CTLNCD = B.CTLNCD
)