![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 4.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jest tabela, w której wiersz ma kilka pól. Co jakiś czas robiony jest update na wierszu i z każdym updatem zmieniają się wartości WSZYSTKICH pól. Wiersz będzie często czytany, ale rzadko modyfikowany.
Po jedym odczytaniu dane idą do sesji, jeśli dane się zmieniły od ostatniego czytania, to zastępują te w sesji. Czy wydajniejsze będzie za każdym odświeżeniem strony sprawdzić tylko jedną wartość i jeśli się zmieniła, to zrobić drugi select dla wszystkich, czy za każdym razem czytać wszystkie? Ratio select:update będzie coś koło 20:1. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Na pewno szybciej będzie za każdym razem zaciągać cały rekord i nadpisywać dane w sesji.
Sprawdzanie jednego pola, potem zaciąganie całego rekordu jest trochę bez sensu (jeżeli dobrze zrozumiałem Twój pomysł) : - robisz wtedy 2 selecty do bazy zamiast jednego - masz dodatkową operacje porównania w aplikacji -------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 135 Pomógł: 1 Dołączył: 5.10.2005 Skąd: Opole/Chorzów Ostrzeżenie: (0%) ![]() ![]() |
@prond: zauważ, że dane idą do update'u bardo rzadko, tak więc z jakiej racji pobierać za każdym razem całość?? Załóżmy że przez 19 razy wartość się nie zmieniła a tabla posiada 20 wierszy. Nie zmieniając tabeli musimy pobrać aż 380 wierszy. A przy sprawdzaniu pojedynczym niech zmieni się jeden wiersz, to pobierzemy tylko 1 wiersz. Przy założeniu, że dobrze zrozumiałem o co chodzi autorowi tematu
![]() -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jakoś mi się utkwiło, że to jeden wiersz i wtedy nie ma co się pieścić tylko zrobić to tak jak napisałem.
Jeżeli pobieranych jest wiele rekordów do też jeden SELECT, ale z warunkami. Jak wynik jest pusty to nie nadpisujemy danych w sesji. -------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 4.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzany jest tylko jeden rekord. Czyli lepiej 20 selectów całości, niż 19 jednego pola i jeszcze jeden select całości, jak zrozumiałem.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 06:00 |