Was kann man über die Optimierung des Abfrageplans sagen? MVCC Es gibt eine Tabelle CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); und eine Abfrage, die jede Sekunde ausgeführt wird UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Nach einigen Tagen bemerkt man: • Die Größe der Tabelle ist stark gewachsen • Die Abfrage SELECT * FROM orders WHERE id = 1 läuft langsamer Fragen an den Kandidaten 1. Warum wächst die Tabelle, obwohl die Zeile immer gleich ist? 2. Welche Rolle spielt MVCC in dieser Situation? 3. Was sollte dieses Problem lösen?
C#
Was ist IAsyncDisposable?
Kennen Sie vacuum und vacuum full?
Was zeigt das Programm mit async/await: main gibt A aus, ruft saySomething (statisch, gibt Task zurück) auf, wartet 5 Sekunden, dann D?
Transaktionstypen / Isolationsstufen?
Was zeigt das Programm an, wenn throw an den angegebenen Stellen auskommentiert ist?
Was ist ein weiteres Problem mit Multithreading in der Methode Init?
Hat es mit Linq2DB nicht funktioniert?
Wie macht man eine Klasse iterierbar?
Welchen Technologie-Stack haben sie verwendet?
IMemoryCache — was ist das und wann verwenden?
Überprüfung: angewandter Code Die Klasse enthält die Logik zur Verarbeitung neuer Bestellungen. Sie extrahiert die Bestellungen und Positionen aus der Datenbank, führt dann einen HTTP-Aufruf an einen externen Microservice Stock durch, der die Produkte entsprechend den Bestellpositionen reserviert. Wenn alle Reservierungen erfolgreich sind, bestätigt der Microservice die Reservierung der Bestellung in Stock und markiert die Bestellung als verarbeitet. Der Microservice läuft in mehreren Instanzen, daher kann die Methode Process parallel ausgeführt werden. Um zu vermeiden, dass dieselben Zeilen verarbeitet werden, wird ein Mechanismus der pessimistischen Sperrung in PostgreSQL Select for update ... skip locked verwendet. Die Implementierung von IBus sendet Nachrichten an 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;" } }; ```
Wann tritt eine Schließung (closure) auf?
Erzählen Sie mir von Ihrer letzten Arbeitsstelle — Severstal. Was haben Sie gemacht, wie lange gearbeitet, welcher Technik-Stack?
Warum kann eine struct nicht erben?
Wie viel Speicher benötigt eine Date-Instanz in 32- und 64-Bit-Systemen?
Wie man es korrigiert, damit 0-9 angezeigt werden?
IMemoryCache Welche Vor- und Nachteile hat die Verwendung von IMemoryCache in einer Anwendung? Was ist die OWASP Top 10? Code-Metriken 1. Welche Code-Qualitätsmetriken kennen Sie? 2. Haben Sie sie verwendet? 3. Wie haben Sie sie berechnet? 4. Sind sie Teil von CI oder ad hoc? Last Was würden Sie tun, wenn Ihr Service (Webseite) in einem Test- oder Belastungskontext hängt, aber lokal alles funktioniert?
Wie funktionieren Transaktionen mit Versionen im MVCC?
Warum funktioniert eine Anwendung mit Datenbank in einer Umgebung und verschlechtert sich in einer anderen?