2016-09-21 4 views
0

Мне нужно найти более эффективный метод четкого объединения двух наборов данных из двух таблиц. Данные хранятся в двух таблицах, которые дефрагментированы, сжаты и индексированы. Индексы которых также дефрагментируются и сжимаются. Сборы результатов уже были ограничены до объединения.Эффективные альтернативы утверждениям Союза

Пример кода в вопросе:

Select * From (
     Select A.entry_id, First_name, last_name, Mobile_Phone, Email_Address, '1' As 'ownership' 
      From userAddressBook As A Join collectionMapping As B On A.entry_id=B.entry_id 
      Where [email protected] And [email protected] 
     Union 
     Select A.entry_id, First_name, last_name, Mobile_Phone, Email_Address, '0' As 'ownership' 
      From userAddressBook As A Join collectionMapping As B On A.entry_id=B.entry_id 
      Where A.UserID<>@UserID And [email protected] 
    ) As UnionTable 
    Order By last_name Asc, First_name Asc, entry_id Asc 

Я в идеале ищет альтернативный метод, который может обеспечить те же самые результаты. Я уже пробовал следующее:

  • выбор отличается от объединения всех
  • двойных вставок в табличном переменные и выбирать различные
  • двойных вставок во временную таблицу и выбирать различную (и вариации выше показатели в таким образом, когда индекс изменяется только в нижней части)

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

Любая помощь по этому вопросу будет оценена, спасибо.

ответ

0
Select 
    A.entry_id 
    ,First_name 
    ,last_name 
    ,Mobile_Phone 
    ,Email_Address 

    ,CASE WHEN A.UserId = @UserId THEN '1' ELSE '0' END As 'ownership' 

From 
    userAddressBook As A 
    Join collectionMapping As B 
    On A.entry_id=B.entry_id 
Where 
    B.GroupNameID = @groupidentifier 
Order By 
    last_name Asc 
    ,First_name Asc 
    ,entry_id Asc 

У вас почти такой же запрос, с использованием выражения CASE, и с его помощью в одном запросе будет больше.

Смежные вопросы