Sobes.tech

Ce se poate spune despre optimizarea planului de interogare? MVCC Există un tabel CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); și o interogare care rulează în fiecare secundă UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; După câteva zile, observați: • dimensiunea tabelului a crescut semnificativ • interogarea SELECT * FROM orders WHERE id = 1 devine mai lentă Întrebări pentru candidat 1. De ce crește tabelul, chiar dacă rândul este întotdeauna același? 2. Ce rol joacă MVCC în această situație? 3. Ce ar trebui să rezolve această problemă?

Middle+
274

Ce este IAsyncDisposable?

Middle+
240

Știți despre vacuum și vacuum full?

Middle+
211

Ce va afișa programul cu async/await: main afișează A, apelează saySomething (static, returnează Task), așteaptă 5 secunde, apoi D?

Middle+
204

Tipuri de tranzacții / niveluri de izolare?

Middle+
199

Care este o altă problemă cu multithreading-ul în metoda Init?

Middle+
192

Ce va afișa programul dacă throw este decomentat în locurile indicate?

Middle+
192

Nu funcționa cu Linq2DB?

Middle+
188

Cum faci o clasă iterabilă?

Middle+
185

Ce stivă de tehnologii au folosit?

Middle+
182

IMemoryCache — ce este și când să îl folosiți?

Middle+
180

Revizuire: cod aplicat Clasa conține logica pentru procesarea noilor comenzi. Extrage comenzile și pozițiile din baza de date, apoi face o solicitare HTTP către un microserviciu extern Stock, în care rezervă produsele conform pozițiilor comenzii. Dacă toate rezervările sunt efectuate cu succes, microserviciul confirmă rezervarea comenzii în Stock și marchează comanda ca procesată. Microserviciul rulează în mai multe instanțe, așa că metoda Process poate fi executată în paralel. Pentru a evita procesarea aceluiași rând, se utilizează un mecanism de blocare pesimistă în PostgreSQL Select for update ... skip locked. Implementarea IBus trimite mesaje către 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+
179

Când are loc închiderea (closure)?

Middle+
168

Vorbește despre ultimul loc de muncă — Severstal. Cu ce te-ai ocupat, cât timp ai lucrat acolo, ce tehnologie ai folosit?

Middle+
166

De ce struct-ul nu poate moșteni?

Middle+
164

Câtă memorie ocupă o instanță de Date în sistemele de 32 și 64 de biți?

Middle+
159

De ce o aplicație cu bază de date funcționează într-un mediu și se degradează în altul?

Middle+
152

Cum să corectați pentru a afișa 0-9?

Middle+
152

IMemoryCache Care sunt avantajele și dezavantajele utilizării IMemoryCache într-o aplicație? Ce este top 10 OWASP? Metrice de cod 1. Ce metrice de calitate a codului cunoști? 2. Le-ai folosit? 3. Cum le-ai calculat? 4. Fac parte din CI sau sunt ad hoc? Încărcare Ce ai face dacă serviciul tău (pagina web) se blochează într-un mediu de test sau de încărcare, dar local totul funcționează?

Middle+
152

Cum funcționează tranzacțiile cu versiunile în MVCC?

Middle+
151
/3