Mi sono imbattuto in questa situazione molto strana, e ho pensato di gettarlo tra la folla per scoprire il perché.JOIN INTERNO su Server Server Tabella molto più lento di Sub-Query
Ho una domanda che è stata unisce una tabella in un server collegato:
select a.*, b.phone
from table_a a,
join remote.table_b b on b.id = a.id
(lots of data on A, but very few on B)
questa query stava parlando sempre (mai scoperto il tempo di esecuzione reale), e cioè quando ho notato B
avuto indice, quindi l'ho aggiunto, ma ciò non ha risolto il problema. Infine, per disperazione ho provato:
select a.*, b.phone
from table_a a,
join (select id, phone from remote.B) as b on b.id = a.id
Questa versione della query, nella mia mente come minimo, dovrebbe avere gli stessi risultati, ma ecco, il suo rispondere immediatamente!
Qualche idea sul perché uno si bloccherebbe e l'altro processo rapidamente? E sì, ho aspettato per assicurarmi che l'indice fosse stato costruito prima di eseguirli entrambi.
Hai esaminato il piano di esecuzione per entrambi? Differiscono? Hai emesso _dbcc dropcleanbuffers_ tra ogni metodo? – canon
Circa il numero di record in 'remote.B'? – Yuck
Il DB "remoto" si trova su un altro server a cui si accede tramite un server di collegamento e ci sono circa 600 righe. – Limey