Sobes.tech

Co można powiedzieć o optymalności planu zapytania? MVCC Istnieje tabela CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); i zapytanie wykonywane co sekundę UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Po kilku dniach zauważasz: • rozmiar tabeli znacznie się powiększył • zapytanie SELECT * FROM orders WHERE id = 1 działa wolniej Pytania do kandydata 1. Dlaczego tabela rośnie, choć wiersz jest zawsze ten sam? 2. Jaką rolę odgrywa MVCC w tej sytuacji? 3. Co powinno rozwiązać ten problem?

Middle+
263

Czym jest IAsyncDisposable?

Middle+
228

Czy znasz vacuum i vacuum full?

Middle+
208

Co wyświetli program z async/await: main wyświetla A, wywołuje saySomething (statyczne, zwraca Task), czeka 5 sekund, potem D?

Middle+
197

Typy transakcji / poziomy izolacji?

Middle+
195

Co wyświetli program, jeśli throw zostanie odkomentowane w wskazanych miejscach?

Middle+
189

Jaki jest inny problem z wielowątkowością w metodzie Init?

Middle+
187

Nie działało z Linq2DB?

Middle+
183

Jak uczynić klasę iterowalną?

Middle+
179

Jakiego stosu technologii użyli?

Middle+
176

IMemoryCache — co to jest i kiedy go używać?

Middle+
175

Przegląd: kod zastosowany Klasa zawiera logikę obsługi nowych zamówień. Wyciąga zamówienia i pozycje z bazy danych, a następnie wykonuje wywołanie HTTP do zewnętrznego mikroserwisu Stock, w którym rezerwuje produkty według pozycji zamówienia. Jeśli wszystkie rezerwacje zakończą się powodzeniem, mikroserwis potwierdza rezerwację zamówienia w Stock i oznacza zamówienie jako przetworzone. Mikroserwis jest uruchamiany w kilku instancjach, więc metoda Process może być wykonywana równolegle. Aby uniknąć przetwarzania tych samych linii, używa się mechanizmu pesymistycznego blokowania PostgreSQL Select for update ... skip locked. Implementacja IBus wysyła wiadomości do RabbitMq. ```csharp public sealed class PendingOrdersProcessor { public async Task PendingOrdersProcessor(ILogger logger, IBus bus, HttpStockService st { var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var cs = _cs[env]; _db = new OrdersRepository(cs); _bus = bus; logger = logger; ``` ```csharp _stockService = stockService; } private readonly ILogger _logger; private readonly IOrdersRepository _db; private readonly IStockService _stockService; private readonly IBus _bus; private static readonly Dictionary<string, string> _cs = new { { "Development", "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=myDataBase" }, { "Production", "User ID=root;Password=myPassword;Host=prod-db;Port=5432;Database=" "Pooling=true;Min Pool Size=0;Max Pool Size=1;" } }; ```

Middle+
170

Kiedy dochodzi do zamknięcia (closure)?

Middle+
165

Opowiedz o swoim ostatnim miejscu pracy — Severstal. Czym się zajmowałeś, ile tam pracowałeś, jaki stos technologiczny?

Middle+
159

Dlaczego struct nie może dziedziczyć?

Middle+
158

Ile pamięci zajmuje instancja Date w systemach 32- i 64-bitowych?

Middle+
155

Jak naprawić, aby wyświetlało 0-9?

Middle+
148

IMemoryCache Jakie są zalety i wady korzystania z IMemoryCache w aplikacji? Czym jest top 10 OWASP? Metryki kodu 1. Jakie metryki jakości kodu znasz? 2. Używałeś ich? 3. Jak je obliczałeś? 4. Czy są częścią CI czy ad hoc? Obciążenie Co byś zrobił, gdy Twój serwis (strona internetowa) zawiesza się na środowisku testowym lub obciążeniowym, a lokalnie wszystko działa?

Middle+
148

Jak działają transakcje z wersjami w MVCC?

Middle+
147

Dlaczego aplikacja z bazą danych działa w jednym środowisku, a w innym się pogarsza?

Middle+
146
/3