ďťż
 
Roznice pomiedzy MSSql 7.0 i 2000 ďťż
 
Roznice pomiedzy MSSql 7.0 i 2000
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

Roznice pomiedzy MSSql 7.0 i 2000



kdorko@gmail.com - 23-02-2007 00:01
Roznice pomiedzy MSSql 7.0 i 2000
  Mam problem z wydajnoscia bazydanych na MSSQL serwerze 2000 i 2005
dla MSSQL 7.0 wszysztko wyglada ok

problem dotyczy uzycie view
Create view vName As

SELECT * FROM Table_T t where (user_name() like '%-%' and col1 in

(select e.conum from Security_details e WHERE USER_NAME() =
e.username))

or (user_name() like '%.%' and col1 not in (select e.col1 from
SecuritySecurity_details e WHERE

USER_NAME() = e.username))

Gdy robie select na db copability level 7.0 z takiego view za
pierwszym razem trwa to dlugo np 40s ale kazde nastepne wywolanie trwa
2 lub 0 s.
Natomiast na 8.0 lub 9.0 za kazdym razem trwa to 40 s

Tabele maja indexsy podobne selekcje sa szybkie gdy uzywam tabel
bezposrednio - problem polego na tym ze nie moge ich uzywac :)

pytanie jest czy moge cos zmienic (inne view lub jakiec ustawienia
servera) aby jednak dzialalo to szybciej na 8.0 i 9.0
No i co jest dokladnie powodem takich roznic (wiem co nie co o
uzywaniu tymczasowych procedur w przypadu prepare na serwerze 6.5 Czy
to moze byc wyjasnieniem tego problemu dla 7.0 ?)?

Problem jest duzy bo trzymanie bazy danych na poziomie 7.0 na serwerze
2005 jest bardzo nie ekonomiczne :)





Marcin A. Guzowski - 24-02-2007 00:02

  kdorko@gmail.com napisał(a):

> Problem jest duzy bo trzymanie bazy danych na poziomie 7.0 na serwerze
> 2005 jest bardzo nie ekonomiczne :)

Powodów może być cały szereg, bo między wersjami 7.0 a 8.0, a zwłaszcza
9.0 różnice dotyczące silnika są zasadnicze.

Powodem rozbieżności wydajnościowych jest w 99% przypadków query
optimizer. Przeprowadza on estymację kosztową i dobiera najbardziej
optymalny plan wykonania. Jednym z głównych czynników, jakie rozważa
optimizer jest szacowana liczba wierszy (ENR, Estimated Number of Rows)
na każdym z etapów realizacji zapytania. Wielkość ta jest szacowana na
podstawie statystyk kolumn, rozmiarów tabel złączenia itd. W przypadku
zastosowania funkcji niedeterministycznej SUSER_SNAME() estymacja jest
bardzo problematyczna i sytuacja mocno się komplikuje, co często
prowadzi do powstawania niewydajnego planu wykonania.

Na Twoim miejscu przepisałbym zapytanie z definicji widoku na joiny,
gdyż z nimi SQL Server 2005 radzi sobie zwykle lepiej. To po prostu
kwestia strategii optymalizacji wybranej przez twórców najnowszej wersji
MSSQLa. W tej materii nie ma jednoznacznie dobrych i złych rozwiązań.

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




kdorko@gmail.com - 26-02-2007 00:05

  > Na Twoim miejscu przepisałbym zapytanie z definicji widoku na joiny,
> gdyż z nimi SQL Server 2005 radzi sobie zwykle lepiej. To po prostu
> kwestia strategii optymalizacji wybranej przez twórców najnowszej wersji
> MSSQLa. W tej materii nie ma jednoznacznie dobrych i złych rozwiązań.

Hej
Dzieki za wskazowki Przynajmniej teraz wiem ze nie mam co szukac
wyjscia w konfiguracji servera
Uzycie joinow jest jednak w tym przypadku nieco problematyczne bo te
views musza byc transakcyjne tzn Musze miec mozliwosc wykonywania
insert, update i delete
Pewnie bede musial pocwiczyc triggery instead of do zrealizowania tej
funkcjonalnosci

A co do strategi MS to sie zgadzam cos zawsze trzeba wybrac a nie
zawsze kazdemu to pasuje :)

Pozdrawiam
Krzysztof Dorko
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= [MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?= MSSQL Express czy Oracle Express MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?= Pobierananie danych z innej bazy danych w MSSQL Migracja MSSQL 2005 CTP na 2005 Express MSSQL , funkcja pobierajaca sama date (bez czasu) w funkcji
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • latwa-kasiora.pev.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