ďťż
 
MsSQL2000 czas wykonania procedury ďťż
 
MsSQL2000 czas wykonania procedury
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

MsSQL2000 czas wykonania procedury



beezak - 07-08-2007 00:01
MsSQL2000 czas wykonania procedury
  Mam problem z czasem wykonywania procedury składowej w mssql'u.
Jak wykonuje EXEC JakasProcedurka w Query Analyzer to czas oscyluje w
granicach 10sec, ta sama procedura (te same parametry na wejściu)
uruchomiona z poziomu aplikacji albo w JOBie trwa 2 min





Marcin A. Guzowski - 07-08-2007 00:01

  beezak wrote:
> Mam problem z czasem wykonywania procedury składowej w mssql'u.
> Jak wykonuje EXEC JakasProcedurka w Query Analyzer to czas oscyluje w
> granicach 10sec, ta sama procedura (te same parametry na wejściu)
> uruchomiona z poziomu aplikacji albo w JOBie trwa 2 min

I oczekujesz współczucia, uznania, wyjaśnienia dlaczego potencjalnie tak
się dzieje, czy może jak zdroworozsądkowo badać tego typu zachowania? -
bo Twój post nie zawiera pytania, tylko stwierdzenie.

Różnica w czasie wykonania wynika zapewne z faktu, że SQL Server
wykorzystuje inny execution plan dla wywołania z QA, a inny dla
wywołania z joba/appl. Dwa przykładowe powody:

- raz wywołanie kwalifikowane jest przez ownera (dbo.procedura), a raz
nie (co rzutuje na re-używalność wydajnego planu wykonania)
- procedura w jobie wywoływana jest w innym kontekście niż procedura w
QA (raz robi to np. sysadmin, a raz jakiś "słaby" użytkownik) - efekt
podobny jak powyżej: sysadmin (działający w kontekście dbo) używa planu
z cache'a, appl - nie

Popatrz czy ew. procedura jest rekompilowana, jaki ma plan wykonania, w
jakich kontekstach jest wywoływana (jakie loginy) versus co siedzi w
cache'u (master.dbo.syscacheobjects). Problem może sam zniknąć i pojawić
się w przyszłości w dowolnym momencie - warto więc zrozumieć powody jego
występowania.

--
Pozdrawiam,
Marcin Guzowski
http://guzowski.info




beezak - 09-08-2007 00:00

  to co opisujesz jest na wyzszym poziomie abstrakcji a wystarczylo
set nocount on

dziekuje

temat zamkniety

Użytkownik "Marcin A. Guzowski" <tu_wstaw_moje_imie@guzowski.info> napisał w
wiadomości news:f97sea$ifr$1@news.onet.pl...
> beezak wrote:
>> Mam problem z czasem wykonywania procedury składowej w mssql'u.
>> Jak wykonuje EXEC JakasProcedurka w Query Analyzer to czas oscyluje w
>> granicach 10sec, ta sama procedura (te same parametry na wejściu)
>> uruchomiona z poziomu aplikacji albo w JOBie trwa 2 min
>
> I oczekujesz współczucia, uznania, wyjaśnienia dlaczego potencjalnie tak
> się dzieje, czy może jak zdroworozsądkowo badać tego typu zachowania? - bo
> Twój post nie zawiera pytania, tylko stwierdzenie.
>
> Różnica w czasie wykonania wynika zapewne z faktu, że SQL Server
> wykorzystuje inny execution plan dla wywołania z QA, a inny dla wywołania
> z joba/appl. Dwa przykładowe powody:
>
> - raz wywołanie kwalifikowane jest przez ownera (dbo.procedura), a raz nie
> (co rzutuje na re-używalność wydajnego planu wykonania)
> - procedura w jobie wywoływana jest w innym kontekście niż procedura w QA
> (raz robi to np. sysadmin, a raz jakiś "słaby" użytkownik) - efekt podobny
> jak powyżej: sysadmin (działający w kontekście dbo) używa planu z cache'a,
> appl - nie
>
> Popatrz czy ew. procedura jest rekompilowana, jaki ma plan wykonania, w
> jakich kontekstach jest wywoływana (jakie loginy) versus co siedzi w
> cache'u (master.dbo.syscacheobjects). Problem może sam zniknąć i pojawić
> się w przyszłości w dowolnym momencie - warto więc zrozumieć powody jego
> występowania.
>
>
> --
> Pozdrawiam,
> Marcin Guzowski
> http://guzowski.info




Marcin A. Guzowski - 09-08-2007 00:00

  beezak wrote:
> to co opisujesz jest na wyzszym poziomie abstrakcji a wystarczylo
> set nocount on

Votum separatum.

Szczerze mówiąc, nie bardzo w to wierzę (że jest to bezpośredni powód
różnicy w działaniu). Ale jak powiedziałeś - temat zamknięty.

--
Pozdrawiam,
Marcin Guzowski
http://guzowski.info





beezak - 10-08-2007 00:00

  ....zatem pomeczmy jeszcze temat, moze komus sie przyda

Przyklad:

CREATE PROCEDURE spTemp as
declare @a smallint
declare @b table(a smallint)

set @a=0

while (@a<3000)
begin
set @a=@a+1
insert @b values (@a)
end
GO

W zaleznosci od serwera uruchomienie "exec spTemp" :
Czas wykonania w QA: 1sec
Czas wykonania w JOB: 47sec

Zmiany w procedurze, dodanie na starcie <set nocount on>

CREATE PROCEDURE spTemp as
set nocount on

declare @a smallint
declare @b table(a smallint)

set @a=0

while (@a<3000)
begin
set @a=@a+1
insert @b values (@a)
end
GO

Czas wykonania w QA: 1sec
Czas wykonania w JOB: 1sec

Użytkownik "Marcin A. Guzowski" <tu_wstaw_moje_imie@guzowski.info> napisał w
wiadomości news:f9cse9$h35$1@news.onet.pl...
> beezak wrote:
>> to co opisujesz jest na wyzszym poziomie abstrakcji a wystarczylo
>> set nocount on
>
> Votum separatum.
>
> Szczerze mówiąc, nie bardzo w to wierzę (że jest to bezpośredni powód
> różnicy w działaniu). Ale jak powiedziałeś - temat zamknięty.
>
>
> --
> Pozdrawiam,
> Marcin Guzowski
> http://guzowski.info




=?ISO-8859-2?Q?Artur_Muszy=F1ski?= - 10-08-2007 00:00

  beezak pisze:
> while (@a<3000)
> begin
> set @a=@a+1
> insert @b values (@a)
> end

To było nieuczciwe z twojej strony. Od razu trzeba było podać ten kod,
sprawa byłaby jasna.

artur




Marcin A. Guzowski - 10-08-2007 00:00

  Artur Muszyński pisze:
> beezak pisze:
>> while (@a<3000)
>> begin
>> set @a=@a+1
>> insert @b values (@a)
>> end
>
> To było nieuczciwe z twojej strony. Od razu trzeba było podać ten kod,
> sprawa byłaby jasna.

Dokładnie. Ze swojej strony przepraszam za brak wiary w ludzką..
pomysłowość :)

--
Pozdrawiam,
Marcin Guzowski
http://guzowski.info
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?= [MS SQL 2000/2005] Procedura z dynamicznym SQL [MySQL] Czy da =?ISO-8859-2?Q?si=EA_wykonac_takie_powi=B1z?==?ISO-8859-2?Q?anie_mi=EAdzy_tabelami=2C_i_jak_to_odpyta=E6_? ==?ISO-8859-2?Q?=3F?= =?iso-8859-2?q?Procedura_sk=B3adowalna_wywo=B3ywana_o_okreslo nej_godzinie?= [ORACLE] Stored Procedures - jaki typ danych przy dostępnie poprzez ADO? =?iso-8859-2?q?[Mysql_5=2E0]_Wywo=B3ywanie_procedury_jako_parametr_funkcji?= [MySQL5] problem z zastosowanie funkcji, procedury w celu unikniecia powtórzeń kodu w zapytaniach =?iso-8859-2?q?wysy=B3anie_emaila_za_pomoca_procedury_skladow anej_Oracle?= =?iso-8859-2?Q?=5Boracle_pl/sql=5D_r=F3=BFnice_w_tworzeniu_procedur?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ets2.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com