Avatar billede dargny Nybegynder
09. april 2010 - 09:16 Der er 12 kommentarer

Langsom overførsel af data

Jeg skal flytte 6 millioner rækker mellem 2 databaser.

Kører jeg selecten i en query, så tager den 6 min for at blive færdig.

Men overførelsen tager ca. 7 timer.

Hvad er grunden til dette?
Avatar billede Syska Mester
09. april 2010 - 09:25 #1
Det er jo ikke megen information du kommer med ... :-(

Så alt er kun gæt ...

Langsom hastighed mellem dine servere?

Det kunne din LOG på den anden server ... da 6 mill rækker fylder lidt(igen, alt efter data, men da du ikke har mere informaton, er det ik' nemt at sige) og den skal jo kunne lave en rollback hvis der går noget galt.

mvh
Avatar billede dargny Nybegynder
09. april 2010 - 09:32 #2
Vi har kørt en test hvor det databaserne ligger på samme server
Avatar billede Syska Mester
09. april 2010 - 09:37 #3
Mangler der ikke lidt i den sætning ... ?
Avatar billede dargny Nybegynder
09. april 2010 - 09:50 #4
mere te tak :)

Vi har kørt en test hvor databaserne ligger på samme server, og her er den også 7 timer om det.

Data vi henter er fra et view hvor vi joiner 2 tabeller.

kører vi select * from view, så får vi svaret på 6 min. Laver vi en ssis pakke til det, så tager den 7 timer.

Håber det var mere brugbart.
Avatar billede Syska Mester
09. april 2010 - 10:00 #5
For mig at se ... så virker det som et Performance issue relateret til IO ...

Start et dianostics tool, og se hvor disk IO bliver brugt ...

eller du kan prøve:
SELECT wait_type, status FROM sys.dm_exec_requests WHERE session_id = [dit session id for din langsomme query]

hvis wait_type er IO_COMPLETION så er din flaskehals nok din LOG. ( og nu kommer jeg selv lidt i tvivl her om LOG write waits hedder det )

Men du kan i hvert fald se hvad din query venter på ...

mvh
Avatar billede dargny Nybegynder
09. april 2010 - 10:08 #6
ok, nu bliver det underligt. Hvis vi tager SQL-koden der ligger i viewet og flytter ud i SSIS pakken, så performer det godt ca. 6-7 min. Men selecter vi var view'et så kører det langsomt.

Jeg kan ikke få det til at hænge sammen.
Avatar billede janus_007 Nybegynder
09. april 2010 - 10:44 #7
Det burde max tage et par sekunder på samme server (altså alt afhængig af hw *GG*)

Anyway...

Når du bruger SSIS læser den det hele ud og bulker ind i target, derved springer den transactionloggen over som buzzz påtaler.

Hvis du derimod bare laver en select * from view , er det så til ende det tager 6 min?
Tag evt. en select top 100 * from view og se eksekveringstiden.


Lige den sidste her:
"ok, nu bliver det underligt. Hvis vi tager SQL-koden der ligger i viewet og flytter ud i SSIS pakken, så performer det godt ca. 6-7 min. Men selecter vi var view'et så kører det langsomt.

Jeg kan ikke få det til at hænge sammen. "

- Betyder det så at den har indsat alle 6M rækker og opgaven er løst?
Avatar billede Syska Mester
09. april 2010 - 11:06 #8
janus:
Så blev jeg lidt klogere på SSIS packages.

Så er det sq nok ik' loggen der er problemet :-)

mvh
Avatar billede dargny Nybegynder
09. april 2010 - 12:27 #9
Avatar billede dargny Nybegynder
09. april 2010 - 12:29 #10
dele puljen skulle der stå ;)
Avatar billede janus_007 Nybegynder
10. april 2010 - 12:47 #11
Jeg skal ikke ha point :)
Avatar billede janus_007 Nybegynder
10. april 2010 - 13:58 #12
Forresten... kan da lige nævne, man skal virkelig overveje fordele og ulemper ved at bruge SSIS. Til små ukomplicerede jobs får man meget funktionalitet out-of-the-box, men så snart man har behov for eks.vis at parse xml med komplekse typer mv. kommer man hurtigt til kort.

Man bør heller ikke anvende SSIS imellem to Sql Servere, medmindre der er nogle specielle forhold der betyder at man ikke kan connecte direkte.

DataConversions, grupperinger, sorteringer bør holder til et absolut minimum i SSIS, alt hvad der kan gøres i T-Sql SKAL gøres i T-Sql.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester