Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SQL_CALC_FOUND_ROWS
ActivePlayer
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


w manualu mysqla cos takiego znajde... a pg niestety nie potrafie... trzeba count(*)? nie wydaje mi sie smile.gif any idea ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




O ile się nie mylę, depesz kiedyś napisał, że w przypadku bardzo dużych tabel count() rzeczywiście może być mało wydajne.
Niestety - nie było dla niego prostej i wydajnej alternatywy wbudowanej w PG

Natomiast nic nie stoii na przeszkodzie, by problem rozwiązać samodzielnie.
Wystarczy bowiem utworzyć dodatkową tabelę lub np. SEQUENCE w której będzie się przechowywać informację o ilości wierszy. A następnie utworzyć odpowiedniej trigery ON DELETE i UPDATE które będę zmniejszać lub powiększać tą wartość.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


jest pewien problem... to jest count na widoku.. hmm
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


@DeyV Tak sie zastanawiam co jest lepsze tabela czy sekwencja i jak to sie ma do czasu zwrocenia. Jesli interesowala by nas kazda tabela to chyba lepiej zrobic 1 tabele i zapisywac ilosc dla kazdej tabeli.


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


w moim przypadku to widoki.. bedzie ich okolo 12...
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Cytat
w moim przypadku to widoki.. bedzie ich okolo 12...

Odnosnie widokow nic nie przychodzi mi do glowy bo wynikiem widoku moze byc nieokreslona liczba rekordow (chyba ze widok jest 1 tabela i wtedy mozesz triggera napisac z tymi wlasnie warunkami). Problem pojawi sie wtedy kiedy w kodzie php dokladasz dodatkowe warunki. Troche takie glupie rozwiazanie.


--------------------
Go to the top of the page
+Quote Post
DeyV
post
Post #7





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Obawiam się, że w takim przypadku jedynym rozwiazaniem jest nałożenie na wszystkie "zainteresowane" tablele trigerów wyzwalajacych funkcję przeliczajacą odpowiednie widoki i zapisującą wyniki w sekwencjach / tabeli.

Jeśli updateów / deletów będzie znacznie mniej, niż selectów, to takie rozwiązanie powinno być najekonomiczniejsze.

ps. Sądzę, że praca na sekwencjach będzie szybsza, choć pewnie mniej wygodna.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


jestem troszke niezadowolony z tego obrotu spraw ... myslalem ze pg to bedzie 1 rzecz przed jaka zrobilem ;o od dawna... lekko trzeba sie nabiegac zeby cokolwiek osiagnac...
Go to the top of the page
+Quote Post
SongoQ
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


@ActivePlayer A ile rekordow przewidujesz w tabelach, bo jesli wartosci beda male to szkoda czasu na takie kombinowanie.


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


przewiduje docelowo bardzo duzo (nie mam pojecia ile - raczek na tys na poczatek)smile.gif a do tego z dnia na dzien więcej... mam pytanie jeszcze dot. wydajnosci... jak ma się skladanie widoku z joinami itd itp do wykonania zwyklego zapytania takiego jak 'zawartosc' tegoz widoku ?
Go to the top of the page
+Quote Post
SongoQ
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Widok to tak naprawde jest zapytanie wiec nie ma roznicy czy przesylasz zapytanie czy wywolujesz widok. Z tego co pamietam to w momencie wykonanie widoku optymalizator dolancza kryteria do widoku robi z tego najbardziej optymalna postac i wykonuje. Sensu stosowanie nie ma co pisac.
Odnosnie zlaczen to juz klania sie dostajanie zapytan. Ulozenie tabel, odpowiednia kolejnosc warunkow, explain, indeksy.


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


no wlasnie... a najpierw trzeba miec o tym jakies(lepsze od wiedzy co to index) pojecie... no coz... manu is my friend... ten z pgsa mi jakos bardzo nie pasi... ale moze jakos przebrne...
Go to the top of the page
+Quote Post
SongoQ
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Polecam pomoc z PGAdmina3 i oczywiscie google, najlepiej newsy. Ale mam taka nadzije ze userow PG bedzie wiecej i na forum.php.pl co 2 post bedzie w tym temacie tongue.gif


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


ta pomoc jest dlatego daremna, ze trzeba sie wczytac zeby wiedziec o czym piszą...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:21