Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Znalezienie duplikatów klucza, Wydajne odszukanie duplikatów klucza
tvister
post 17.02.2013, 17:12:10
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

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


Problem dotyczy zapytania, które wyszukuje duplikaty klucza względem identyfikatora technicznego.
Optymalizacja danych nie wchodzi w gre. Indeksy są założone na id i na kolumnach klucza.
Być może ktoś ma pomysł jak to obejść np. kilkoma operacjami ewentualnie zna jakąś magię oracle-ową smile.gif
Poniżej prezentuje sposób ale dla kilkunastu kolumn należących do klucza jest niewydajny.
  1. SELECT ..... FROM table_name1 a WHERE EXISTS (
  2. SELECT count(1) FROM table_name2 b
  3. WHERE
  4. a.kolumna1 = b.kolumna1 OR (a.kolumna1 IS NULL AND b.kolumna1 IS NULL)
  5. AND
  6. a.kolumna2 = b.kolumna2 OR (a.kolumna2 IS NULL AND b.kolumna2 IS NULL)
  7. ...
  8. ..
  9. AND (a.id <> b.id)
  10. );




--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post
mmmmmmm
post 17.02.2013, 17:16:11
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  1. SELECT kolumna1, kolumna2, ... FROM tabela GROUP BY kolumna1, kolumna2, ... HAVING Count(*)>1
Go to the top of the page
+Quote Post
tvister
post 4.03.2013, 10:52:43
Post #3





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

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


To może inaczej.
Szukamy takiej sytuacji gdzie dla danego klucza zlożonego jest przypisany więcej niż jeden identyfiator oraz gdy dla danego
idetyfikatora jest przypisany więcej niż jeden klucz złożony. W wyniku interesują nas rekordy z tabeli a.

Może tą operacje można rozbić na mniejsze ?

Tak dla potomnych

dodałem kolumnę techniczną z konkatenacją kolumn klucza wraz z wybranym separatorem i wszystko hula szybko.

Temat do zamknięcia.


--------------------
Kto rano wstaje ten leje jak z cebra.
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 Wersja Lo-Fi Aktualny czas: 25.04.2024 - 17:54