Discussione:
Tabella SQL bloccata in lettura...
(troppo vecchio per rispondere)
i***@virgilio.it
2007-05-04 12:40:31 UTC
Permalink
Salve,
Ho un problema con una tabella del mio database SQL 2000.
Questo si verifica più volte al giorno, credo all'aumentare
degli accessi e delle interrograzioni.
In pratica nel momento in cui si va ad eseguire
una lettura o una scrittura nella tabella X, l'operazione
viene bloccata ed il client resta tipo "in attesa", il tutto
permane finchè tutti i client del mio server non escono.
A quel punto il tutto ricomincia a funzionare per un pò...
Da notare che la tabella X supera i 500.000 records.
Ho provato a inserire delle chiavi su dei campi
che utilizzavo in ricerca e che non l'havevano, ma senza
risultati.
Da notare che a questa tabella hanno accesso anche
client di Terminal Server.
Cosa posso fare?
Avevo pensato ad una sp che mi sblocchi la tabella o
che almeno mi dica se è in uso...esiste?
Grazie

Distinti saluti
I.T.K. Informatica
Andrea Benedetti
2007-05-04 13:52:02 UTC
Permalink
Salve,
Post by i***@virgilio.it
Salve,
Ho un problema con una tabella del mio database SQL 2000.
Questo si verifica più volte al giorno, credo all'aumentare
degli accessi e delle interrograzioni.
In pratica nel momento in cui si va ad eseguire
una lettura o una scrittura nella tabella X, l'operazione
viene bloccata ed il client resta tipo "in attesa", il tutto
permane finchè tutti i client del mio server non escono.
A quel punto il tutto ricomincia a funzionare per un pò...
Da notare che la tabella X supera i 500.000 records.
Ho provato a inserire delle chiavi su dei campi
che utilizzavo in ricerca e che non l'havevano, ma senza
risultati.
Da notare che a questa tabella hanno accesso anche
client di Terminal Server.
Cosa posso fare?
Avevo pensato ad una sp che mi sblocchi la tabella o
che almeno mi dica se è in uso...esiste?
Prima alcune domande:
- come accedi al database?
- come lavora la tua applicazione?
- è scritta utilizzando framework / librerie di accesso a SQL Server di
terze parti (ho avuto uno scenario simile da un cliente e la libreria era
bacata)?

Poi:
utilizza sp_who per vedere chi sta utilizzando cosa
utilizza sp_lock per vedere i lock impostati sul db
utilizza DBCC INPUTBUFFER per vedere l'ultima istruzione lanciata
dall'eventuale SPID che sta bloccando risorse
Post by i***@virgilio.it
Grazie
Distinti saluti
I.T.K. Informatica
Ciao!
--
Andrea Benedetti
Microsoft MVP - SQL Server
www.absistemi.it - www.ugiss.org
http://blogs.ugidotnet.org/ab
http://mvp.support.microsoft.com
http://italy.mvps.org
i***@virgilio.it
2007-05-04 17:03:13 UTC
Permalink
Post by i***@virgilio.it
Salve,
Post by i***@virgilio.it
Salve,
Ho un problema con una tabella del mio database SQL 2000.
Questo si verifica più volte al giorno, credo all'aumentare
degli accessi e delle interrograzioni.
In pratica nel momento in cui si va ad eseguire
una lettura o una scrittura nella tabella X, l'operazione
viene bloccata ed il client resta tipo "in attesa", il tutto
permane finchè tutti i client del mio server non escono.
A quel punto il tutto ricomincia a funzionare per un pò...
Da notare che la tabella X supera i 500.000 records.
Ho provato a inserire delle chiavi su dei campi
che utilizzavo in ricerca e che non l'havevano, ma senza
risultati.
Da notare che a questa tabella hanno accesso anche
client di Terminal Server.
Cosa posso fare?
Avevo pensato ad una sp che mi sblocchi la tabella o
che almeno mi dica se è in uso...esiste?
- come accedi al database?
- come lavora la tua applicazione?
- è scritta utilizzando framework / librerie di accesso a SQL Server di
terze parti (ho avuto uno scenario simile da un cliente e la libreria era
bacata)?
utilizza sp_who per vedere chi sta utilizzando cosa
utilizza sp_lock per vedere i lock impostati sul db
utilizza DBCC INPUTBUFFER per vedere l'ultima istruzione lanciata
dall'eventuale SPID che sta bloccando risorse
Ciao, i client accedono al database con autenticazione di windows
e via ODBC, come configurazione client TCP/IP anche se non escludo
qualcuno in Nimed Pipe.
La mia applicazione è sviluppata in Omnis Studio della Raining Data.

Grazie ancora!
Andrea Benedetti
2007-05-04 19:23:23 UTC
Permalink
Salve,
<***@virgilio.it> ha scritto nel messaggio news:***@y5g2000hsa.googlegroups.com...
On 4 Mag, 15:52, "Andrea Benedetti" <***@absistemi.it> wrote:
[cut]
Post by i***@virgilio.it
Ciao, i client accedono al database con autenticazione di windows
e via ODBC, come configurazione client TCP/IP anche se non escludo
qualcuno in Nimed Pipe.
La mia applicazione è sviluppata in Omnis Studio della Raining Data.
Ecco, questo era il nome che non volevo sentire.
Il problema viene riscontrato con i nuovi DAM3 di Omnis Studio.
Con la versione precedente la cosa non succedeva.

Ho personalmente impiegato due giorni ad isolare e capire il problema che
"semplicemente" riguarda delle transazioni che vengono lasciate aperte
(!!!!!!!!) e, di conseguenza, vengono lasciati tutti i lock sugli oggetti
associati.
La disconnessione dei client fa si che i lock vengano rilasciati.

Se anche tu utilizzi questi oggetti solleverei al produttore il problema
(che ne ha già al corrente da un'azienda del centro Italia) che dovrebbe
aver risolto (ad oggi con componenti in beta).
Post by i***@virgilio.it
Grazie ancora!
Ciao!
--
Andrea Benedetti
Microsoft MVP - SQL Server
www.absistemi.it - www.ugiss.org
http://blogs.ugidotnet.org/ab
http://mvp.support.microsoft.com
http://italy.mvps.org
i***@virgilio.it
2007-05-05 00:35:12 UTC
Permalink
Post by Andrea Benedetti
Ecco, questo era il nome che non volevo sentire.
Il problema viene riscontrato con i nuovi DAM3 di Omnis Studio.
Con la versione precedente la cosa non succedeva.
Ho personalmente impiegato due giorni ad isolare e capire il problema che
"semplicemente" riguarda delle transazioni che vengono lasciate aperte
(!!!!!!!!) e, di conseguenza, vengono lasciati tutti i lock sugli oggetti
associati.
La disconnessione dei client fa si che i lock vengano rilasciati.
Se anche tu utilizzi questi oggetti solleverei al produttore il problema
(che ne ha già al corrente da un'azienda del centro Italia) che dovrebbe
aver risolto (ad oggi con componenti in beta).
Ok, ma la cosa strana è che è l'unico cliente che riscontra il
suddetto
problema magari sarà xchè è quello che ha la maggior mole di dati...
Cmq io non uso l'ultima release (4.0) ma uso la 3.21...
Ti risulta sia questa, quella incriminata?

(Da notare che il software è fatto completamente da noi... ho fatto io
le connessioni al DB, magari o tralasciato qualche dettaglio)

Ciao!
i***@virgilio.it
2007-05-05 00:58:24 UTC
Permalink
Ho verificato, nella mia release ci sono i nuovi comandi
per l'utilizzo del DAM3, ma nel software utilizziamo
ancora i comandi DAM2... infatti dovrei fare una conversione.
Ma a questo punto è meglio di no.

C'è un modo per togliere i lock dagli oggetti associati?

Grazie
Andrea Benedetti
2007-05-05 17:54:30 UTC
Permalink
Ciao
Post by i***@virgilio.it
Ho verificato, nella mia release ci sono i nuovi comandi
per l'utilizzo del DAM3, ma nel software utilizziamo
ancora i comandi DAM2... infatti dovrei fare una conversione.
Ma a questo punto è meglio di no.
Potresti fare dei testi "in casa".
Anche nell'altra società il problema si presentava solo da un paio di
clienti su diverse centinaia di installazioni.
Il problema nasceva da un modulo in cui l'utente poteva costruirsi dei
report ad-hoc.
Post by i***@virgilio.it
C'è un modo per togliere i lock dagli oggetti associati?
No. Il lock può togliersi solo alla chiusura della transazione che li ha
applicati.

Il suggerimento è quello di sentire l'azienda produttrice (eventualmente
replicando in laboratorio il problema ed inviando loro programmi / db per
far si che possano replicarlo anche loro)
Post by i***@virgilio.it
Grazie
Ciao!
--
Andrea Benedetti
Microsoft MVP - SQL Server
www.absistemi.it - www.ugiss.org
http://blogs.ugidotnet.org/ab
http://mvp.support.microsoft.com
http://italy.mvps.org
Loading...