SSIS Arkitektur 2008


Den serie artiklar ämnen som behandlas om SSIS arkitektur, SSIS buffert förvaltning, typer av omvandling och hur den förhåller sig till genomförande träd, parallell bearbetning och överväganden för SSIS på 64-bitars datorer. Detta understödda att förstå SSIS arkitektur och dess inre funktioner, hjälper det också i utvecklingen av effektivare förpackningar, felsökning SSIS frågor och optimering för paketet prestanda.

SQL Server 2008 Integration Services tillhandahåller en flexibel, snabb och skalbar arkitektur som möjliggör effektiv integrering av data i dagens affärsmiljöer, genom ett antal nya funktioner och förbättringar som förbättrar prestanda och öka utvecklare och administratör produktivitet. Förbättringar allt från förändringar i arkitektur-för att bättre stödja paket utvecklingen och genomförandet till tillsättning av SSIS Designer uppgifter och komponenter som sträcker SSIS möjligheter och ge mer effektiv dataintegration.

Denna artikel serien kommer att diskutera följande nya funktioner i SSIS 2008:

• Slå upp Enhancement

• Data Profilering Task

• Pipeline Minne Limiter

• Pipeline Performance – Multicast Transform och Threading i SQL Server 2008

• VSTA stöd för Script Task och skriptkomponent

• Import & Export Förbättringar guiden

• Kort förklaring av hävstångseffekten SQL Server 2008 funktioner i SSIS dvs. CDC och MERGE uttalande

Anmärkning:

I den här artikeln där hänvisning görs till “SSIS 2008” den hänvisar till SSIS version med SQL Server 2008 medan “SSIS 2005” hänvisar till SSIS version med SQL Server 2005.

Lookup Transformation Enhancement

Innan omfattar ytterligare detaljer om förbättring av Uppslag omvandling, nedan är en kort explantion vad Uppslag omvandling är och hur det var fram till SQL Server 2005. Om Lookup omvandling i SSIS-2005 redan är känt, sedan hoppa till nästa artikel om Lookup Transformation i SSIS 2008.

Lookup Transformation i SSIS 2005

Den Lookup omvandling utför sökningar genom att gå (med equi få ansluta sig en process där varje rad i omvandling ingång måste matcha minst en rad från referensvärdet datasetet) data i input kolumner med kolumner i en referens dataset / tabell. Hänvisningen dataset kan vara en befintlig tabell eller vy, en ny tabell eller resultatet av ett SQL-uttryck. Om det inte finns någon matchande post i den referens uppsättning data, ingen ansluta sker och inget värde returneras från referens-databasen. Detta är ett fel, och omvandlingen misslyckas, om det inte är konfigurerad att ignorera fel eller omdirigera rader fel till fel utgång. Om det finns flera matcher i referens tabell returnerar lookup bara den första matchen som bygger på Lookup frågan.

Anmärkning:

• Den ansluter kan ett sammansatt gå med, där flera kolumner i omvandlingen bidrag till kolumner i referens-datasetet.

• Den sökningar som utförs av Lookup omvandling är skiftlägeskänsliga.

Den Lookup omvandling använder en OLE DB Connection Manager för att ansluta till databasen med de data som är källan till referens-databasen.

Den Lookup omvandling har följande in-och utgångar:

• Ingång – register som kommer att matchas med hänvisning tabell

• Match utgång – hanterar raderna i omvandling ingång som matchar minst en post i referens-datasetet.

• Fel ingång – hanterar raderna i omvandling ingång som inte kunde matchas med hänvisning tabellen.

Anmärkning:

Som standard behandlar Uppslag omvandlingen rader utan matchande poster som fel.

För att optimera prestanda kan lookup omvandlingen cache hänvisningen tabellen i minnet beroende på cache-läget används (helt eller delvis av den referensränta dataset kan specificeras till cachade att förbättra prestanda genom att använda en caching SQL-uttryck) som diskuteras nedan:

Full Cache / Pre-Cache – Som standard använder lookup Full cache-läge. I det här läget är den databas som efterfrågas gång under före verkställa fasen av dataflödet. Hela referens som dras in i minnet. Efteråt är SQL används inte längre att behandla dessa uppgifter. Detta tillvägagångssätt använder mycket minne, utan att behöva SQL index längre har tillräckligt med RAM för att hålla alla referensuppgifterna är avgörande. Detta tillför ytterligare start för dataflödet, eftersom hela caching sker innan några rader läses från dataflödet källa (s). Handeln bort är att slå upp verksamheten kommer att mycket snabbt under genomförandet. Observera att lookup inte kommer att byta minne ut till disk, så dataflödet kommer att misslyckas om minnet tar slut.

När du använder denna cache-läge:

• När du öppnar en stor del av referens dataset

• När en liten hänvisning datasetet används

• När databasen är fjärrkontrollen under tung eller lasten, och vill minska antalet förfrågningar skickas till servern

Nycklar till att använda denna cache-läge:

• Kontrollera att det finns tillräckligt minne för att passa cache

• Kontrollera att det finns något behov av att plocka upp alla ändringar som görs hänvisningen dataset

• Eftersom lookup frågan utförs innan dataflödet börjar, alla ändringar som görs hänvisningen bordet under dataflödet avrättning kommer inte att återspeglas i cachen

Partiell Cache – I detta läge börjar lookup cache bort tom i början av dataflödet. När en ny rad kommer in, det lookup omvandla kontrollerar sin cache för de matchande värden. Om ingen matchning hittas, ställer den i databasen. Om matchen finns på databasen, är de värden cachade som ska användas nästa gång en matchande rad kommer in Eftersom ingen cachning sker under tiden före verkställa fas, starttiden med hjälp av en partiell cache-läge är mindre än den skulle vara för en hel cache. Kommer dock lookup verksamheten bli långsammare, eftersom databasen ifrågasätts oftare och en SQL-index på referens bordet krävs för det här att gå bra.

När du använder denna cache-läge:

• Vid bearbetning av ett litet antal rader och det är inte värt tiden att ta ut hela cacheminnet

• När du använder en stor referens datauppsättning

• När dataflödet är att lägga till nya rader till referens tabellen

• När vill begränsa storleken av hänvisningen tabellen genom att ändra fråga med parametrar från dataflödet

Nycklar till att använda denna cache-läge:

• Se till att storleken på cachen inställningen är tillräckligt stor

• Använd Miss Cache lämpligt sätt (som i SQL Server 2008, diskuteras senare)

• Om storleken på cachen inte är tillräckligt stort för rader, sortera lookup index kolumner om möjligt

Ingen Cache – Som namnet antyder, i detta läge lookup förvandla inte upprätthålla en uppslagning cache (med ett undantag till sista matchen runt, eftersom minnet redan har fördelats). I de flesta situationer, betyder det att databasen kommer att drabbas för varje rad, och som delvis-Cache läge en SQL-index på referenstabellen För detta krävs det att gå bra.

När du använder denna cache-läge:

• Vid bearbetning av ett litet antal rader

• När du använder icke-repeterande lookup index

• När hänvisning tabellen förändras (infogar, uppdateringar, raderingar)

• När upplever svår minne begränsningar

Nycklar till att använda denna cache läge

• Se till att den partiella cache-läget inte är bättre val

Anmärkning:

• En Lookup omvandling som har konfigurerats för att använda partiella eller inga gömställen kommer att misslyckas om en uppslagning operation matcher kolumner som innehåller null-värden, Om full cachning används som stöder lookup operationer på null-värden, efterträder lookup operationen.

• Med full caching, kommer lookup inte byta minne ut till disk, så dataflödet kommer att misslyckas om minne går ut. För med partiell caching, om cachen fylls (cache når sin gräns) kommer lookup omvandlingen börjar tappa minst sett rader från cache för att inhysa den nya rader.

• Integration Services och SQL Server skiljer sig i deras sätt att jämföra strängar som SQL Server är inte skiftlägeskänsligt men SSIS lookup komponenten är skiftlägeskänsligt och det kan finnas en skillnad på sammanställning mellan SQL och binär som Lookup använder.

Exempel: Det finns flera scenarier där lookup omvandling krävs, anser ett scenario med en försäljning tabell som innehåller försäljningstransaktioner av alla kunder som hör från hela världen. Om att vilja Försäljningsregistren för de kunder som hör från en viss region, Stockholm, Sweden, EU, USA etc. försäljningen tabell kan användas som underlag till lookup omvandling och regionspecifika förteckning över kunder som referens tabellen. Produktionen kommer att innehålla, som väntat, försäljningstransaktioner enbart för kunden av den specifika regionen. Exemplet nedan visar detta i handling.

Skapa ett enkelt paket med ett dataflöde uppgift som drar beställa skivor från källan för den valda produkten endast kommer paketet se ut så här, här ingången till lookup omställning är att tabellen medan produkten tabellen används som referens tabell:

För att konfigurera lookup transformation, högerklicka på Slå upp omvandling och klicka på Redigera, en lookup omvandling redaktör som visas nedan, har tre flikar, den första dvs. “Referenstabell” är en plats att ange källan referens tabell samt om uppgifterna kommer från tabell / visning eller som ett resultat av en SQL-fråga.

Den mellersta fliken dvs. “Columns” anger kartläggningen av kolumn (er) mellan källtabellen och hänvisningen tabellen används i matchande bokföringen. Här utgång kolumn (s) väljs från referensvärdet bordet. Bilden nedan visar kolumnen “Namn” är vald som ska användas som en ny kolumn dvs. “Newname” från uppslagning omvandling.

Den sista fliken dvs. “Avancerat” anger du om att använda partiell-Cache eller no-cache-funktionen (som standard “Aktivera minne begränsning” inte är markerat och därmed Full-Caching kommer att användas), även ange vilken storlek cachen kommer att vara när den är igång på 32-bitars maskin och 64-bitars maskin (Standard värdet är 5 MB).

Det slutliga resultatet av att köra paketet är 542 rader flödar från källan till lookup som indata, tändstickor hänvisning tabell med 124 rader, en annan 418 rader som inte kan matchas skickas ut till Lookup Error produktionen stig.

Nästa artikel i denna serie kommer att undersöka förändringar i Lookup Transformation i SSIS 2008.

Från Khan MS SQL DBA – MCITP            addarr.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s