Avatar billede skjoldan Nybegynder
03. december 2003 - 14:49 Der er 6 kommentarer

langsom udførelse af query på client server

hey.

Jeg har en linux server, når jeg kører en query af direkte på serveren, så virker den fint, og kommer hurtigt frem, hvis jeg kører den fra en workstation så kører den usvigeligt langsomt, hvis der overhovedet kommer noget frem, select connecting går ret hurtigt.

min workstation har jeg også installeret oracle på, på samme måde som på linux, og oprettet den samme base(med andet navn) og de samme tabeller, når andre winXP maskiner går på min maskine så går det hurtigt.

nogle der har nogle gode ideer??
Avatar billede teepee Nybegynder
03. december 2003 - 15:04 #1
hvordan ser sql'en ud, og hvor mange rækker returneres der?
Det er ikke noget med at der overføres kæmpe mængder data?
Avatar billede skjoldan Nybegynder
03. december 2003 - 15:41 #2
det er ligemeget hvilke queries der bliver fyret af, om det bare er en describe så tager det lang tid.
Avatar billede pnielsen Nybegynder
03. december 2003 - 16:19 #3
hvordan er den generalle netværksforbindelse imellem de 2 maskiner ?
Prøv f.eks. at pinge og se svartider - prøv også at overfører f.eks. en 1mb fil via ftp og se hvor lang tid det tager..
Avatar billede teepee Nybegynder
03. december 2003 - 16:24 #4
Når connection til maskinen går hurtigt, må det være noget andet.
Prøv at slå op i sqlnet.ora og sæt linien
SQLNET.AUTHENTICATION_SERVICES=(beq,none) i stedet for NTS som jeg gætter på at den står til.
Hvis der ikke sker noget så sæt den tilbage.
Avatar billede skjoldan Nybegynder
03. december 2003 - 16:39 #5
Jeg rettede det på min workstation, der hjalp det ikke.. på min server står der slet ikke den linie.

Jeg prøvede at skrive den ind alligevel på min server, men samme fejl stadigvæk fra workstation
Avatar billede pnielsen Nybegynder
03. december 2003 - 19:49 #6
Du kører ikke med trace fra din client ?
Sørg for at disse 3 parameter står sådan her i sqlnet.ora på nåde server og client:
TRACE_LEVEL_CLIENT =OFF   
TRACE_LEVEL_SERVER =OFF   
TNSPING.TRACE_LEVEL=OFF

Teepee: Jeg forstår ikke helt hvorfor du vil rette SQLNET.AUTHENTICATION_SERVICES hvis connection til databasen er hurtig ?
Det viser jo netop at der ikke er grund til at rette ved den ??

Jeg er helt sikker på det har noget at gøre med netværket imellem de 2 maskiner. Går alt andet trafik fra din client hurtigt nok ? hvad sker der hvis du gør det jeg beder om ovenfor ?

Prøv evt. at sætte din pakke størrelse på den client der driller.
Skal sættes i din connect streng i tnsnames.ora.

test.world =   
(DESCRIPTION = 
  (SDU=4096)                  #<-- SDU can be set from 512 bytes to 32Kb   
(ADDRESS_LIST = 
      (ADDRESS =     
    (COMMUNITY = tcp.world)   
      (PROTOCOL = TCP)   
      (Host = TESTSERVER)   
      (Port = 1521)        ) 
  ) 
  (CONNECT_DATA = (SERVICE_NAME = TESTDATABASE) 
  ) 
)

Prøv også at sætte tcp.nodelay på din server. Hvis det er en 8i skal der oprettes en protocol.ora fil i samme dir som sqlnet.ora
Hvis det er en 9i skal parameteren sættes i sqlnet.ora
tcp.nodelay=on

Andre parameter du kan lege med i sqlnet.ora på din client (en af gangen):

DISABLE_OOB = ON
eller
BREAK_POLL_SKIP = 8
normal værdi er 4

Good luck
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