Zapytanie sprawdzające pola z polami w rekordach |
Zapytanie sprawdzające pola z polami w rekordach |
16.01.2013, 14:10:40
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 16.01.2013 Ostrzeżenie: (0%) |
Witam was mam takie zapytanie :
Zapytanie to ma sprawdzać pola wszystkich rekordów tzn mamy : 1 2 3 4 5 6 6 5 4 3 2 1 1 2 3 4 5 7 Zapytanie bierze pierwszy rekord a dokładnie jego pola i sprawdza 1 z 6,5,4,3,2,1 potem bierze 2 i sprawdza z 6,5,4,3,2,1 potem 3 i sprawdza z 6,5,4,3,2,1 jeśli wszystkie wartości są w sprawdzanym rekordzie to go wypisuje. Potem pobiera następny rekord w naszym przypadku 6,5,4,3,2,1 i sprawdza jego wartości z rekordem 1 i 2. W naszym wypadku powinno wypisać rekordy : 1 2 3 4 5 6 6 5 4 3 2 1 ponieważ wszystkie wartości z rekordu 1 2 3 4 5 6 są w rekordzie 6 5 4 3 2 1 i na odwrót. Lecz rekord 1 2 3 4 5 7 nie wypisuje ponieważ nigdzie w pozostałych dwóch rekordach nie ma 7. Zapytanie chodzi super, lecz problem jest w tym że jeśli baza przybiera na rozmiarze to niestety czas wykonywania takiego zapytania jest ekstremalnie długi nawet 40 minut (mowa o 6 tyś rekordach). Robiłem też to od strony programowej w dwa sposoby : 1. Pętla w pętli każdy rekord jest sprawdzany przez rekord. Tzn mamy pierwszy rekord to pola z tego rekordu sprawdzane są w polach następnych rekordów , jeśli wartości znajdą się to dodaje mi dane rekordu do datasetu. 2. Pobiera ID rekordu i wysyła zapytanie do bazy czy istnieje jakiś taki rekord który ma takie samą wartość gdzieś jak pierwsze pole rekordu pobranego , potem sprawdza drugie pole itd. Jeśli wszystkie są TRUE to wyświetla Niestety te dwie metody też nie są najszybsze. Ten post edytował alek12 16.01.2013, 14:19:20 |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 00:21 |