portur.top

  

Bästa artiklarna:

  
Main / Sybase 15.7 strömlinjeformad dynamisk sql där klausul

Sybase 15.7 strömlinjeformad dynamisk sql där klausul

Page 1 2 3 .... ESD 4 har funnits länge. Anledningen till detta är att jag inte riktigt var nöjd med det jag såg. Men detta är en riktig kundsituation och jag måste veta hur min ASE kommer att hantera det. Det är verkligen naivt att tänka att ASE endast ska hantera korrekt bildad arbetsbelastning skriven av utvecklarteam som är känsliga för hur DB fungerar.

Idag skrivs mer och mer kod som bryr sig mycket lite om DB-behov. Eftersom det här är vad jag letade efter bytte jag riktningen lite. Tyvärr kunde jag inte spendera mycket tid på de aktuella testerna, och jag kommer inte att kunna spendera mer tid på dem under kommande kundsamtal. Jag lyckades dock göra några första tester som jag skulle vilja dela.

Speciellt eftersom det nu finns en parallell diskussion om ISUG SIG-området som nu är begränsat till endast betalda medlemmar som nämner cache-frågor. En installationsanmärkning åt sidan om ESD 4. Jag var tvungen att trussa installationsprocessen eftersom den ständigt hängde. Som det visade sig tar inte platsbehovet som installationen kontrollerar hänsyn till tillgängligt växlingsutrymme. Hade installationen informerat mig om detta krav i tid, kan det ha sparat lite tid och smärta.

Jag hoppas att den goda koden som hanterar installationen kommer att bli ännu bättre i framtiden .... Så här är inställningarna :. Vårt mål: Vi börjar med ESD 2. Statement Cache situation :. Spinlock-situation :. Nu ESD 4 :. Statemet Cache-situation :. Spinlock-situation :.

Innan något annat måste jag lägga till en kort anteckning om att minska storleken på uttalandecache. Efter att uttalandecacheminnet har använts 100 MB i mina tester, när uttalandecacheminnet reduceras till ett lägre värde 20 MB eller till och med 0 MB frigörs inte minnet. Förmodligen ett fel. Detta är vad prsqlcache rapporterar :. ASE behöver inte startas om eftersom alternativet är dynamiskt.

Minne konfigurerat: DBCC-körning slutförd. Nu till resten av resultaten. Det verkar som om ESD 4 behandlar situationen för en klientkod som slösar bort dess uttalande och procedurcacheminnesstrukturer - som onödigt vänder sidokedjan - mycket bättre.

Jag publicerade inte data från mina tester på en stor SPARC-värd som utlovats tidigare eftersom de inte var riktigt bättre. Förhoppningsvis får jag också mycket förbättrade prestandamätvärden där.

Det har verkligen varit en smärta i nacken att hantera dessa saker. Nästa uppdatering kommer troligen på måndag, såvida inte något intressant upptäcks innan det och jag har tid att testa och vittna om det här.

Jag måste bekräfta: Jag kommer att korsprova dessa problem igen imorgon och flytta mina tester lite för att kontrollera ännu ett problem kring missbruk av uttalandecachen. Väldigt goda nyheter! Här är de bara fakta, igen. Spinlock Situation noterar vägen 12. Gängad kärnläge ger en mycket stabil genomströmning. Mer stabil än processkärnläget. I båda fallen klättrar trådanvändningen upp och proccache spinlock. Dessutom, om uttalandets cache skonade oss hänsynslöst på grund av mycket höga volymer unika uttalanden som genererats av koden, håll cachen så liten som möjligt - 20M var bra här, 200M var ganska dåligt.

Det gängade kärnläget ger mer tillfredsställande resultat - mer stabil prestanda, något bättre genomströmning och mindre buggar. Jag kommer att köra fler och olika tester under de följande veckorna - liksom att jämföra prestanda över ett bredare spektrum av mätvärden - men med tanke på att köra en hög volym unika förberedda uttalanden är problemet med ASE 15. Och eftersom jag inte Ser du inga historiska bidrag, jag antar att vi kommer att förlora all information som finns i de gamla forumen?

Under de senaste dagarna har jag avfyrat en kopia av ASE 15. Jag hittade bara några anteckningar om den här funktionen. CR-listan är källan till min information.

CR 667751 har all allmän information som jag hittat hittills. Efter många misslyckade försök insåg jag hur enkelt det här kunde vara. ASE-servern skapar en sockelfil vid start baserat på huvudposten i gränssnittsfilen. För att detta ska fungera måste ASE-dataservern ha skrivåtkomst till en mapp. Jag bestämde mig för att jag ville att min socketfil skulle kallas "ASE. Båda verktygen fungerade utan problem. Resultaten av min inkommande bcp-testning visade att nätverkslagret inte var min källa till tvist och långsamhet.

Jag förväntar mig att utgående bcp kommer att visa bättre resultat om jag kan komma förbi andra självtillförda problem på min maskin. Så vi är tillbaka med samma fråga: Jag har precis avslutat en ny testrunda kring denna fråga som har orsakat en hel del problem under de tidigare utgåvorna av ASE och jag vill dela och sammanfatta ju mer du förklarar ju mer du förstår dig själv .

Låt oss först citera lite dokumentation - för att redogöra för vem som är aktörerna inom vårt område. Jag kommer att reservera det för ett fåtal aspekter av vad som är relevant. Kapitel 5: När användare kör lagrade procedurer letar Adaptive Server i procedurcachen för en frågeplan att använda.

Om en frågeplan är tillgänglig placeras den i MRU-änden av kedjan och körningen börjar. Det minne som tilldelats för procedurcachen innehåller de optimerade frågeplanerna och ibland träd för alla partier, inklusive alla utlösare. När det är aktiverat reserverar uttalandecachen en del av procedurcachen.

I versioner tidigare än 15. I version 15. Eftersom uttalandets cache delas mellan alla anslutningar kan dynamiska SQL-uttalanden återanvändas över anslutningar. I klartext kan vi beskriva lekplatsen för våra tester på följande sätt :. Motivationen bakom allt detta är att återanvända så mycket resurser inom ASE som möjligt.

När uttalande-cache är aktiverat letas frågan upp i uttalande-cache istället och om matchningen hittas klonas planen från procedurcachen och körs.

Detsamma gäller för förberedda uttalanden. Med uttalandecache och strömlinjeformat alternativ aktiverat, uttalandet slås upp, klonas och körs eller lagras för senare återanvändning. I själva verket är denna "återanvändningsmetod" en patenterad funktion [2012]. I själva verket kan man samla in en hel del information om allt detta över webben.

Hittills teorin. Vi vet vem som är spelaren på våra testgrunder. Vad vi kommer att se nedan baserat på de utförda testerna är hur ASE reagerar på att ändra olika konfigurationsparametrar relaterade till det relativt nya aggressiva resursanvändningsmålet. Jag har begränsat mig till testerna till endast fyra möjliga inställningar att spela med: Detta resulterar i följande matris av möjliga tester :.

Jag kör 10 Java-klienter som kör unika förberedda uttalanden på en 15-trådig ASE, 15. Inställningen "bokstavlig autoparam" är aktiverad, så är alternativet "plandelning". Den första grafen representerar tråden upptagen för alla våra tester :. Å ena sidan verkar det ganska uppenbart: Det här är dock inte så uppenbart, eftersom vi i vårt fall genererar LWP: er som täcker 10 helt unika strömmar av förberedda uttalanden.

Återanvändning här är ganska minimal. Siffrorna är dock entydiga. Även om ASE står inför en tjock ström av unika förberedda uttalandeförfrågningar, hanterar det det mycket bättre om klienten begär dem som procedurer för övrigt, så var det INTE fallet med tidigare ASE 15-utgåvor.

Jag skulle också vilja dela följande graf :. Vi vet från dokumentation att varje cachad uttalande förbrukar en objektbeskrivare. Så det är vettigt att vända uttalande-cachen på antalet aktiva objektbeskrivare kommer att öka [12: Effekten är dock mycket större när det strömlinjeformade alternativet är aktiverat. Något att tänka på.

Den här är också intressant :. Varje gång DYNP slås på fördubblas antalet låsförfrågningar. Den här säger också :.

(с) 2019 portur.top