Query SQL: divisa e eseguita parallelamente?

-1

Ho una tabella master T1 che ha 1000 record e una colonna chiave ColRef. Ci sono molte altre tabelle tutte collegate da ColRef.

Ho una procedura memorizzata che richiede poche ore di elaborazione. Voglio dividere questo processo come creare una vista da T1 selezionare record come da 1 a 250, da 251 a 500, da 501 a 750, > 750. ed esegui questo da un programma .Net. Non posso apportare modifiche a nessuno dei componenti SQL, inclusa la procedura o le viste. invece se passi un suggerimento dalle mie 4 istanze di programma per eseguire diverse sezioni di dati. Sembra una situazione impossibile, ma qualcuno potrebbe imbattersi in questo tipo di situazione.

L'intero processo richiede 8 ore, se posso dividere in 4 istanze ed eseguire 4 server diversi (ma un database) richiederebbe circa 2 ore in teoria.

    
posta KarTk 24.05.2016 - 12:04
fonte

2 risposte

2

Secondo lo stesso argomento, se hai 1.000 server (e un database) finirai l'elaborazione in (8 ore * 3600 secondi / ora / 1000 record =) 28,8 secondi.

Questo è chiaramente sbagliato. I blocchi di tabella e I / O diventeranno predominanti molto tempo prima che tutti i 1.000 server inizino a funzionare. Mi aspetterei problemi simili con 4 server.

Un approccio migliore è quello di fare un po 'di attenzione sulla procedura memorizzata. Verifica l'utilizzo dell'indice e controlla i piani di query generati come suggerito da @Caleth.

Una volta che sai esattamente dove si trova il collo di bottiglia, sarai in grado di riscrivere la sezione (probabilmente piccola) del codice che causa il problema. Potresti essere fortunato e scoprire che ti manca un indice.

Ricorda che la prima regola di ottimizzazione consiste nel misurare il codice in modo da sapere che stai ottimizzando la parte che conta.

Brent Ozar ha alcuni strumenti gratuiti che potrebbero essere d'aiuto.

    
risposta data 24.05.2016 - 15:07
fonte
0

Uso le viste partizionate (non ho Enterprise quindi non posso partizionare le tabelle). Sono perfetti per il tuo tipo di criteri.

Vedi link

    
risposta data 02.06.2016 - 00:25
fonte

Leggi altre domande sui tag