Può SQL Server 2000 essere fatto per compilare un catalogo full-text, senza bloccare le tabelle si sta leggendo?

StackOverflow https://stackoverflow.com/questions/577306

Domanda

Ho un server di database in SQL Server 2000 (sì, lo so ...) con i cataloghi full-text su alcune delle sue tavole. Attualmente sto facendo un popolamento completo durante la notte in tempo tranquillo, e mi piacerebbe essere in grado di aggiornare i cataloghi durante il giorno, in modo che i nuovi dati possono essere considerati nelle ricerche.

Il problema che ho notato è che quando una compilazione incrementale viene eseguito v'è una notevole quantità di blocco, causato dal processo di compilazione. Le altre operazioni su questo database utilizzano "read uncommitted", o sporco legge, per ridurre al minimo i ritardi (non mi interessa soprattutto di up-to-the-secondo dati precisi) quindi non sono esattamente sicuro perché la popolazione, che se è soltanto la lettura dei dati, blocchi di loro.

Eventuali indizi, suggerimenti?

È stato utile?

Soluzione

storia breve: no, e la situazione non è molto migliore fino agli ultimi aggiornamenti di SQL Server 2008. La versione RTM del 2008 avevano questi stessi problemi, come abbiamo documentato qui:

http: // www. brentozar.com/archive/2008/11/stackoverflows-sql-2008-fts-issue-solved/

La soluzione è quella di utilizzare i sottosistemi di storage più veloci che hanno senso per il vostro budget e dei carichi di lavoro. I cataloghi full-text devono essere su array separati dai dati e dei registri, e in questo modo si può finire popolazione più veloce.

È anche detto che sei sorpreso che la lettura provoca serrature. Abbiamo articoli su SQLServerPedia spiegano processo di blocco di SQL Server, come questo:

http://sqlserverpedia.com/wiki/SQL_Server_Locking_Mechanism

Se vuoi risposte più specifiche, guardare il vostro server durante la popolazione. Eseguire uno sp_who2, guardano quali query sono stati bloccati, ed eseguire un comando DBCC INPUTBUFFER (SPID) per scoprire quale sia il loro T-SQL è. In questo modo è possibile vedere esattamente quali tipi di query stanno causando esso. Se sei sicuro che sta utilizzando leggere non impegnati, caricare una copia del piano di esecuzione di query, e siamo in grado di aiutare interpretarlo per scoprire cosa sta succedendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top