Timout sql server

lunedì 17 gennaio 2011 - 13.42

getfar Profilo | Junior Member

Ciao a tutti ho un problemino abbastanza sciocco.
Eseguendo una vista , sql server mi restituisce questo errore

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

Sapreste aiutarmi.
Ho settato a 0 tutti i valori di timeout.

Grazie mille

dinoxet Profilo | Senior Member

>Ciao a tutti ho un problemino abbastanza sciocco.
CAIO
>Eseguendo una vista , sql server mi restituisce questo errore
LA ESGUI APRENDO LA VISTA IN PROGETTAZIONE??
>Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding
APRILA CLICCANDO SU MODIFICA SELEZIONA LA SELECT E PREMI "F5" NON TI DARA' QUESTO ERRORE
>Sapreste aiutarmi.
>Ho settato a 0 tutti i valori di timeout.

>Grazie mille
PREGO


DINOXET
__________________________________________
impossible is only a word

getfar Profilo | Junior Member

Ho aperto la vista in modifica.
La vista è una union di più select.
Ho provato con F5 ma niente.

dinoxet Profilo | Senior Member

PUOI MOSTRARCI QUESTA SELECT??


DINOXET
__________________________________________
impossible is only a word

getfar Profilo | Junior Member

Una cosa preventiva,
la query su tabelle più piccole funzionave perfettamente.


-----------------------

SELECT dbo.APP_allacc_2.treno_da, dbo.APP_allacc_2.codice_part_treno_da, dbo.APP_allacc_2.codice_arr_treno_da, dbo.APP_allacc_2.data_ora_part_treno_da,
dbo.APP_allacc_2.data_ora_arr_treno_da, dbo.APP_allacc_2.km_treno_da, dbo.APP_allacc_2.treno_a, dbo.APP_allacc_2.codice_part_treno_a,
dbo.APP_allacc_2.codice_arr_treno_a, dbo.APP_allacc_2.data_ora_arr_treno_a, dbo.APP_allacc_2.data_ora_part_treno_a, dbo.APP_allacc_2.km_treno_a,
dbo.APP_allacc_2.codice_stazione, dbo.APP_allacc_2.inizio_fascia_ora, dbo.APP_allacc_2.fine_fascia_ora, dbo.APP_allacc_2.min_allacc_ammesso,
dbo.APP_allacc_2.max_allacc_ammesso, 0 AS costo, dbo.APP_allacc_2.minuti_all AS minuti_allacc, dbo.IN_assegn_manut_impianto.codice_intervento AS tipo,
dbo.APP_allacc_2.km_treno_a AS km_allacciamento, dbo.ANA_impianti.codice_impianto, dbo.ANA_impianti.descrizione_breve
FROM dbo.APP_allacc_2 INNER JOIN
dbo.ANA_impianti ON dbo.APP_allacc_2.codice_part_treno_a = dbo.ANA_impianti.codice_stazione_afferenza INNER JOIN
dbo.IN_assegn_manut_impianto ON dbo.ANA_impianti.codice_impianto = dbo.IN_assegn_manut_impianto.codice_impianto AND DATEDIFF(minute,
dbo.APP_allacc_2.data_ora_arr_treno_da, dbo.APP_allacc_2.data_ora_part_treno_a) >= dbo.IN_assegn_manut_impianto.durata_min
WHERE (DATEDIFF(minute, dbo.APP_allacc_2.data_ora_arr_treno_da, dbo.APP_allacc_2.data_ora_part_treno_a) >= 0)
UNION
SELECT APP_allacc_2_2.treno_da, APP_allacc_2_2.codice_part_treno_da, APP_allacc_2_2.codice_arr_treno_da, APP_allacc_2_2.data_ora_part_treno_da,
APP_allacc_2_2.data_ora_arr_treno_da, APP_allacc_2_2.km_treno_da, APP_allacc_2_2.treno_a, APP_allacc_2_2.codice_part_treno_a,
APP_allacc_2_2.codice_arr_treno_a, APP_allacc_2_2.data_ora_arr_treno_a, APP_allacc_2_2.data_ora_part_treno_a, APP_allacc_2_2.km_treno_a,
APP_allacc_2_2.codice_stazione, APP_allacc_2_2.inizio_fascia_ora, APP_allacc_2_2.fine_fascia_ora, APP_allacc_2_2.min_allacc_ammesso,
APP_allacc_2_2.max_allacc_ammesso, 0 AS costo, APP_allacc_2_2.minuti_all AS minuti_allacc, IN_assegn_manut_impianto_1.codice_intervento AS tipo,
APP_allacc_2_2.km_treno_a AS km_allacciamento, ANA_impianti_1.codice_impianto, ANA_impianti_1.descrizione_breve
FROM dbo.APP_allacc_2 AS APP_allacc_2_2 INNER JOIN
dbo.ANA_impianti AS ANA_impianti_1 ON APP_allacc_2_2.codice_part_treno_a = ANA_impianti_1.codice_stazione_afferenza INNER JOIN
dbo.IN_assegn_manut_impianto AS IN_assegn_manut_impianto_1 ON ANA_impianti_1.codice_impianto = IN_assegn_manut_impianto_1.codice_impianto AND
DATEDIFF(minute, APP_allacc_2_2.data_ora_arr_treno_da, APP_allacc_2_2.data_ora_part_treno_a) >= IN_assegn_manut_impianto_1.durata_min
WHERE (DATEDIFF(minute, APP_allacc_2_2.data_ora_arr_treno_da, APP_allacc_2_2.data_ora_part_treno_a) < 0)
UNION
SELECT treno_da, codice_part_treno_da, codice_arr_treno_da, data_ora_part_treno_da, data_ora_arr_treno_da, km_treno_da, treno_a, codice_part_treno_a,
codice_arr_treno_a, data_ora_arr_treno_a, data_ora_part_treno_a, km_treno_a, codice_stazione, inizio_fascia_ora, fine_fascia_ora, min_allacc_ammesso,
max_allacc_ammesso, costo, minuti_all AS minuti_allacc, tipo, km_treno_a + km_treno_da AS km_allacciamento, '' AS codice_impianto, '' AS descrizione_breve
FROM dbo.APP_allacc_2 AS APP_allacc_2_1

alx_81 Profilo | Guru

>Una cosa preventiva,
>la query su tabelle più piccole funzionave perfettamente.
Appunto, se su tabelle più piccole funzionava perfettamente il problema è che questa query è diventata ora veramente pesante e quindi non regge più il numero di record.
Devi lavorare di indici e di miglioramento dell'utilizzo della vista. Se apri in modifica la view, avrai uno scan completo su tutti i record. Sarebbe meglio, se devi consultare le righe, scrivere una select con una top che ti torni solo qualche record, in base al filtro che vuoi applicare (where). In generale poi, come dicevo prima, dovrai fare un tuning per capire come scrivere indici mirati per velocizzare la risposta.
Insomma, dovrai armarti di pazienza ed effettuare analisi approfondite sul modello, sugli indici, sui tipi di interrogazione che avrai, sulle risorse, ecc.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

getfar Profilo | Junior Member

Cioè non è possibile aumentare il timeout ?

alx_81 Profilo | Guru

>Cioè non è possibile aumentare il timeout ?
quello è un timeout a design, nel senso che il designer vede che ci sta mettendo troppo a tornare tutti i record.
Scrivi la query direttamente su management studio senza usare il designer, e non avrai problemi.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5