Wpis z mikrobloga

@owocbananowca: Pobierasz dane z tabeli XXX z użyciem ALL ENTRIES FOR ityyy. Jeśli ityyy jest puste, to moim zdaniem nie powinno nić pograć z XXX, ale pobiera wszystko.
  • Odpowiedz
@owocbananowca: Pobierasz dane z tabeli XXX z użyciem ALL ENTRIES FOR ityyy. Jeśli ityyy jest puste, to moim zdaniem nie powinno nić pograć z XXX, ale pobiera wszystko.


@Zashi: Mało tego, jeżeli tabelka wewnętrzna jest pusta to ignoruje całego WHERA, jeżeli masz tam jakiś warunek, który nie korzysta z tej tabelki wewnętrznej (typu EBELN = '000000001' - hardcode ) to zostanie on zignorowany i zaciągnie całą tabelkę. Dlatego
  • Odpowiedz
jest doładnie jak pisze @mastal88: a czy jest to nielogiczne?
@Zashi: hm.. jest to po części analogia to in (range) gdzie pusta tabelka oznacza po prostu brak warunków, (usówanie duplikatów jest akurat dla mnie nielogiczne, nie widzę sensowengo powodu)

No i powoduje dumpy jak jest za dużo wpisów w tabeli wewnętrznej


@mastal88: na pewno in (range) ma limit, pamięciowy, ale FAE też? miałem wiele wpisów i nigdy
  • Odpowiedz
@LowcaG, @mastal88: trzeba byłoby sprawdzić, ale wydaje mi się, że w przypadku range'a po prostu jest rozszerzany warunek WHERE zapytania na silniku bazy danych (z tego co pamiętam, to w SQL Serverze 2008 jest np limit do 2000), a w przypadku FOR ALL ENTRIES IN może być robiony staging table i LEFT JOIN do niej. Pasowałoby wtedy, że przy range'u wywala się przy większej liczbie rekordów.
  • Odpowiedz