Je bent nu offline; er wordt gewacht tot er weer een internetverbinding is

INF: Client effecten op SQL Server-doorvoer

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

De Engelstalige versie van dit artikel is de volgende:180775
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.
Samenvatting
In het algemeen gebieden die invloed op de prestaties, de meestgebruikte evaluerenbeschouwd als aspecten zijn processor snelheid, schijf i/O en geheugen op de server.Hoewel de prestaties van de server onderdelen zijn essentieel voor goedeprestaties, u moet ook overwegen net werk latentie en de client verwerkenfactoren die ook een belangrijke invloed op de totale hebben kunnen tijdprestaties van het systeem.

Dit artikel bespreekt de laatstgenoemde gebieden en vindt u richtlijnen voorwat de gevolgen te evalueren zij mogelijk op de server.
Meer informatie
In het volgende voorbeeld wordt in het hele document gebruikt. De stappen voor hetde twee verbindingen uitvoeren met een klein verschil in dezelfde updatede syntaxis van Transact-SQL.

Verbinding 1

use pubsgoselect convert(char(30), GetDate(), 9) "Start Time"go            Begin transaction   Go   ==>   Send to SQL Server and process results            Update authors set au_lname = au_lname   Go   ==>   Send to SQL Server and process resultsCommit / Rollback transaction   Go   ==>   Send to SQL Server and process resultsselect convert(char(30), GetDate(), 9) "End Time"go				

Verbinding 2

use pubsgoselect convert(char(30), GetDate(), 9) "Start Time"gobegin transactionif(0 = @@ERROR)begin   update authors set au_lname = au_lname   if(0 = @@ERROR)   begin      commit transaction   end   else   begin      rollback transaction   endendgo    ==>   Send to SQL Server and process resultsselect convert(char(30), GetDate(), 9) "End Time"go				

Net werk van retouren

Verbinding 1 vereist drie reizen naar de SQL Server-computer:
  • Transactie starten
  • Update
  • Commit / Rollback transactie
Verbinding 2 is vereist voor een enkele reis om de update te voltooien.

Query annuleren

De DB-Library en de ODBC-API's ondersteuning voor asynchrone queryverwerking. DB-Library gebruikt bijvoorbeeld de functie dbdataready toestaande client de voltooiingsstatus van de query te controleren.

DB-Library in wordt de functie dbdataready beheerd door de DataReadySleepwaarde. Voor meer informatie over de registersleutel DataReadySleepRaadpleeg het volgende artikel in de Microsoft Knowledge Base:
159234: INF: het wijzigen van de slaaps tand waarde die wordt gebruikt door Dbdataready

Hoe slaap tijd van invloed zijn op de tijds instellingen

Standaard wordt is de slaaps tand waarde 250 milliseconden.

Verbinding 1 maakt drie ronde reizen naar SQL Server. Standaard wordt declient optreedt ten minste 750 milliseconden de wachttijd, niet meegerekendde tijd voor de feitelijke net werk overdracht. De wachttijd wordt berekend op basis van(250 milliseconden * 3) = 750 milliseconden.

Verbinding 2 is een enkele reis en een minimum van 250 optreedtmilliseconden wachttijd, tellen niet de tijd voor het feitelijke net werkoverdracht.

U kunt de snelheid van dit voorbeeld met een factor drie, gewoon door wijzigenronde profiteren van de Transact-SQL-syntaxis en twee net werk verwijderenreizen.

Hoe beperk de interactie net werk van invloed zijn op andere gebruikers

Verbinding 1 bevat een transactie geopend voor een minimum van 500 milliseconden.Nadat de transactie geopend is, duurt het 500 milliseconden te voltooien deUpdate en vervolgens doorvoeren of terugdraaien van de transactie. Data base vergrendelingvoorkomen dat andere gebruikers toegang tot de records die u wilt wijzigen.

Verbinding 2 blijft de transactie geopend zolang als nodigde bewerking niet voltooien. Op een computer één processor van 133 MHz Pentiumuitvoeren van SQL Server en ISQL/w worden de volgende tijds duur gezien.

Opmerking: De uiteindelijke net werk i/O wordt niet weer gegeven in een van de volgendevoorbeelden. Na het doorvoeren of terugdraaien worden de vergrendelingen uitgebrachtmaar de uiteindelijke i/O niet is geregistreerd.
   Begin transaction                5 milliseconds   Update                          20 milliseconds   Commit/Rollback transaction      7 milliseconds      TOTAL                        32 milliseconds				

Verbinding 2 duurt ongeveer 32 milliseconden, datVerbinding 1 vereist een veel grotere verwerking venster en aanzienlijk wordt uitgebreidde transactie latentie tijd.
   Begin transaction                5 milliseconds   Network I/O                    250 milliseconds   Update                          20 milliseconds   Network I/O                    250 milliseconds   Commit/Rollback transaction      7 milliseconds      TOTAL                       532 milliseconds				

Zoals eerder aangegeven, is de net werk tijd een eenvoudige factor drie. Echter,de vergrendelings gevolgen die het voorbeeld op andere gebruikers data base legt is eenfactor van 16 (532/32 = ~ 16).

Nu laten we zeggen dat dit eenvoudige voorbeeld van een externe draag bare computer isverbinding maken met een 28k8-modem. Naast de 250 milliseconden vertragingde tijd die daadwerkelijk opgelegde door de parameter dbdatareadysleepde gegevens verzenden via de langzame koppeling merkbaar is. Verbinding 1andere data base gebruikers beïnvloed door een nog grotere factor, terwijlVerbinding 2 zou hoofdzakelijk beïnvloed door de snelheid van de clientcomputer.De opdracht wordt verzonden, op de SQL Server in 32 milliseconden verwerkt.De enige gebruiker van het systeem dat een vertraging optreedt, wordt de externe gebruikerzoals verwacht, langzame modem is.

Vertragings tijd op client computers

Client vertragings tijd is de periode die terwijl de client verstrijktHiermee verwerkt u de resultaten die zij ontvangen. Als u opnieuw verbinding 1u kunt snel zien hoe deze het proces kan beïnvloeden. Als u een extra 10milliseconden nodig zijn voor de client voor het verwerken van een resultaatset, kunt u toevoegeneen andere 30 milliseconden aan dat de totale transactie tijd en nog een 20de transactie latentie tijd in milliseconden.

We gaan opnieuw voorbeelden. In dit geval wordt er een voorraad tabel uiteen online systeem. U hebt besteed maanden ontwikkelen en wat installerenmoet het systeem snelste online order verwerking in de geschiedenis. De gebruikerskunt zoeken, kopen en houden een winkelwagentje tussen andere opties. Dit is detbllnventory tabel:
   tblInventory      iProductID       int      strTitle         varchar(50)      strDescription   varchar(255)      iSize            int      iInStock         int      iOnOrder         int      iType            int				

Ik wil kopen sommige granen. Echter, ik wil graag zien wat erbeschikbaar. Definiëren we granen zoals type 2, zodat de toepassing problemende volgende query. In dit voorbeeld bevat de data base 750 graan-verwante items.
   Select strTitle, strDescription, iSize, iInStock from tblInventory   where iType = 2				

SQL Server compileert en de query te parseren en vervolgens beginnen om terug te keren deresultaten. Gedeelde vergrendelingen worden verworven op de desbetreffende pagina's. Vergeet niet datgedeelde vergrendelingen blok update, insert en delete-bewerkingen.

Terzelfdertijd, omdat de toepassing gebruikte landelijke, zes anderemensen wilt graan bestellingen plaatsen.

SQL Server wordt de eerste tabel gegevensstroom (TDS) pakket, wordtde client en vervolgens wachten op de client om de resultaten verwerken. Tijdens dede tijd dat de client wordt verwerkt door de resultaten (client latentie tijd)SQL Server blijft een gedeelde pagina vergrendeling Houd op de pagina waar het wasverwerking. Deze gedeelde vergrendeling kan een gebruiker die probeert te voltooien blokkereneen order.

Het lijkt een eenvoudige handeling. Een resultaat set van de SQL-Server selecteren ende waarden in een keuze lijst invoegen Een 133 MHz Pentium-computer kunt toevoegen 750items in een keuze lijst in iets meer dan één seconde. De keuze lijst bij het uitschakelenhet archief kost slechts een derde van een tweede. U kunt aanzienlijk verminderenlatentie tijd op client computers door simpelweg de keuze uit te schakelen.

Zelfs misschien geneigd te wijzigen van de bewerking selecteren om te verminderende vergrendeling. De gedeelde vergrendeling blootstelling door het wijzigen van de query te beperken devolgende.
   Insert * into #tblSelect from   Select strTitle, strDescription, iSize, iInStock from tblInventory				

   Select * from #tblSelect				

De query in SQL Server wordt geïsoleerd en wordt niet gestart als resultaat geventotdat ze zijn verplaatst naar de tijdelijke tabel en alle gedeeldevergrendelingen worden vrij gegeven uit de voorraad tabel. Dit beperkt de tijd diegedeelde vergrendelingen worden vastgehouden in de voorraad tabel met de tijd die nodig is voor SQLDe server de resultaten naar tempdb verplaatsen. Het besturings element is opnieuw met dedata base en niet op de client.

Een andere manier doen hetzelfde gedrag is een "intelligente" client maken.In plaats van een keuze lijst vullen, mogelijk sneller geladen een array. Echter,nog hebt vragen over net werk doorvoer wordt gebonden. Hetde tijdelijke tabel is een betere oplossing in deze situaties.

Zoals u zien kunt, kan de client een belangrijke rol spelen in de data basedoorvoer. U moet vooral voorzichtig wanneer u werkt met afstands bediening enrapportage systemen. De hoeveelheid tijd die de client proces duurtterwijl de potentiële gevolgen van de data base vergrendeld heeft resultatendoorvoer. Dit soort problemen kunnen moeilijk te zien als de latentie periodentijds instellingen van 100 milliseconden en moeilijk te zien met de sp_who mogelijkopgeslagen procedure. Een langzame verbinding gebruiken om snel te zien het gedrag. Voer dede toepassing van een RAS-koppeling en Zie het algehele gedrag lijkt. Ukunnen ook profiteren van het hulp programma SQL Trace zorgvuldig profielde toepassing.

Zie voor meer informatie de volgende artikelen in deMicrosoft Knowledge Base:
165951: INF: resultaat verwerking voor SQL Server

172117: INF: hoe profiel Transact-SQL-Code in opgeslagen Procedures en Triggers

162361: INF: vasts tellen en oplossen van problemen met blokkering SQL Server

167610: INF: beoordeling van de Query vertragingen

48712: INF: verwerking van time-outs correct in DB-Library

117143: INF: wanneer en hoe u dbcancel() of sqlcancel()
prestaties kbps WAN

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 180775 - Laatst bijgewerkt: 02/25/2011 02:59:00 - Revisie: 2.0

Microsoft SQL Server 6.5 Standard Edition

  • kbinfo kbmt KB180775 KbMtnl
Feedback
html>=">