Jakie mogą wystąpić konsekwencje podczas tworzenia indeksu w tabeli z milionem wierszy?
Java
Wyjaśnij zasadę działania metody optymistycznego blokowania w zarządzaniu współbieżnym dostępem do danych.
Czy masz doświadczenie w kontaktach z dostawcami danych lub zasobów?
Co może prowadzić do pogorszenia wydajności funkcji?
Czy możesz wyjaśnić koncepcję API Stream w Java i jak jest używana do przetwarzania danych?
Czy cykliczne zależności mogą prowadzić do wycieków pamięci w programie?
Jakie są zalety i wady korzystania z indeksów dla poszczególnych kolumn w bazie danych?
Jak sprawdzić wykonaną zapytanie SQL w PostgreSQL?
Dlaczego podczas jednoczesnej modyfikacji ArrayList podczas iteracji występuje wyjątek ConcurrentModificationException?
Przeczytaj kod i podkreśl błędy /** * Klient z zakupionym biletem może za dodatkową opłatą wybrać konkretne miejsce. * Cena bazowa miejsc jest określana przez taryfy (zewnętrzny serwis). * Dla klientów z określonymi taryfami (PREMIUM, ULTRA) konieczne jest zastosowanie zniżki przy płatności. * Przy rezerwacji klientowi wystawiana jest faktura do zapłaty. Zarządzanie płatnościami odbywa się w zewnętrznym serwisie. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezerwacja. * @param seatCode kod miejsca (np. 19A) * @param ticketId ID biletu */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //rezerwujemy var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //szukamy podstawowej taryfy dla wybranego miejsca w samolocie var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //szukamy danych klienta Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Znaleziono użytkownika " + userData.getFio() + " numer dokumentu " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //50% zniżki price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //20% zniżki price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //wystawiamy fakturę paymentClient.sendInvoice(invoice); System.out.println("Faktura wystawiona"); } @Data @Table("seat_booking") public class SeatBooking { @Column private String seatCode; @Column private UUID flightId; @Column private UUID ticketId; @Column private BookingStatus status; } public enum BookingStatus { BOOKED, PAID; }
W jaki sposób możesz zwiększyć szybkość wykonania tej metody?
Jakie działania podjąłbyś, gdyby przy rosnącym obciążeniu systemu opóźnienia w wykonywaniu zapytań do bazy danych stały się znaczne?
Czy możesz wyjaśnić, co oznacza typ danych atomowy?
Czy może Pan wyjaśnić zasadę działania blokady pesymistycznej i czym różni się ona od innej strategii blokowania?
Jak odbywa się konfiguracja i rejestracja Bean w ramach Spring Framework?
Czy możesz wyjaśnić, jak zorganizowana jest struktura dziedziczenia wyjątków w języku programowania?
Wyjaśnij koncepcję usuwania typów i jej główny cel w programowaniu.
Jakie metody można zastosować, aby zwiększyć szybkość wyszukiwania w tabeli?
Czy istnieją operacje, których wykonanie jest wykluczone w transakcjach?