Sono attualmente in esecuzione la seguente dichiarazioneCosa sta bloccando "Seleziona il primo 1 * da TableName con (nolock)" dalla restituzione di un risultato?
select * into adhoc..san_savedi from dps_san..savedi_record
Sta prendendo un dolorosamente molto tempo e mi piacerebbe vedere a che punto è così mi sono imbattuto in questo modo:
select count(*) from adhoc..san_savedi with (nolock)
che didn' t restituire nulla in modo tempestivo così per il gusto di farlo ho fatto questo:
select top 1 * from adhoc..san_savedi with (nolock)
Anche che sembra funzionare a tempo indeterminato. Potrei capire se ci sono milioni di record che il conteggio (*) potrebbe richiedere molto tempo, ma non capisco perché la selezione del primo record non ritorni praticamente subito considerando che ho specificato nolock.
Nel nome della divulgazione completa, dps_san è una vista che viene prelevata da una connessione odbc tramite un server collegato. Non penso che questo possa influenzare il motivo per cui non posso tornare in prima fila ma semplicemente buttarlo là fuori nel caso in cui mi sbaglio.
Quindi voglio sapere che cosa impedisce l'esecuzione di tale istruzione?
EDIT:
Come ho già detto, sì dps_san..savedi_record è una vista. Ecco ciò che fa:
select * from DPS_SAN..root.SAVEDI_RECORD
Non è niente di più di un alias e non fa raggruppamento/ordinamento/etc quindi non credo che il problema sta qui, ma per favore mi illumini se ho sbagliato a tale proposito.
Cosa fa la vista? Se esegue GROUP BY, ORDER BY o utilizza funzioni di aggregazione, potrebbe essere che selezionare la prima riga sia quasi altrettanto costoso della selezione di tutti. –
Sei sicuro che SELECT INTO abbia già scritto una singola riga su disco? Forse è ancora in modalità blocco schema perché è ancora in attesa che ODBC fornisca la prima riga dalla connessione collegata. –
@ AaronBertrand No, non sono sicuro. Tuttavia, posso aprire un'altra finestra di query e selezionare i record da dps_san..savedi_record tutto quello che voglio e ottenere risultati in modo che sarebbe strano se non avesse scritto alcun risultato per ora (sono passate 2 ore). –