Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Timout sql server
lunedì 17 gennaio 2011 - 13.42
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
getfar
Profilo
| Junior Member
104
messaggi | Data Invio:
lun 17 gen 2011 - 13:42
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
484
messaggi | Data Invio:
lun 17 gen 2011 - 13:45
>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
104
messaggi | Data Invio:
lun 17 gen 2011 - 13:50
Ho aperto la vista in modifica.
La vista è una union di più select.
Ho provato con F5 ma niente.
dinoxet
Profilo
| Senior Member
484
messaggi | Data Invio:
lun 17 gen 2011 - 13:52
PUOI MOSTRARCI QUESTA SELECT??
DINOXET
__________________________________________
impossible is only a word
getfar
Profilo
| Junior Member
104
messaggi | Data Invio:
lun 17 gen 2011 - 14:24
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
8.814
messaggi | Data Invio:
lun 17 gen 2011 - 14:42
>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
104
messaggi | Data Invio:
lun 17 gen 2011 - 14:44
Cioè non è possibile aumentare il timeout ?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 17 gen 2011 - 14:45
>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
Torna su
Stanze Forum
Elenco Threads
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 !