Ko var teikt par vaicājuma plāna optimizāciju? MVCC Ir tabula CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); un vaicājums, kas tiek izpildīts katru sekundi UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Pēc dažām dienām pamanāt: • tabulas izmērs ir ievērojami palielinājies • vaicājums SELECT * FROM orders WHERE id = 1 kļūst lēnāks Kandidāta jautājumi 1. Kāpēc tabula aug, lai gan rinda vienmēr ir tā pati? 2. Kādu lomu MVCC spēlē šajā situācijā? 3. Ko būtu jārisina šai problēmai?
C#
Kas ir IAsyncDisposable?
Vai jūs zināt vacuum un vacuum full?
Ko parādīs programma ar async/await: main izdrukā A, izsauc saySomething (statisku, atgriež Task), gaida 5 sekundes, tad D?
Transakciju veidi / izolācijas līmeņi?
Ko parādīs programma, ja throw tiks no komentēta norādītajās vietās?
Kāda ir vēl viena problēma ar daudzprocesu Init metodē?
Nestrādāja ar Linq2DB?
Kā padarīt klasi iterējamu?
Kādu tehnoloģiju steku viņi izmantoja?
IMemoryCache — kas tas ir un kad izmantot?
Atsauksme: piemērotais kods Klase satur loģiku jaunu pasūtījumu apstrādei. Tā izvelk pasūtījumus un pozīcijas no datu bāzes, pēc tam veic HTTP pieprasījumu ārējam mikroservisam Stock, kurā rezervē preces pēc pasūtījuma pozīcijām. Ja visas rezervācijas ir veiksmīgas, mikroserviss apstiprina pasūtījuma rezervāciju Stock un atzīmē pasūtījumu kā apstrādātu. Mikroserviss darbojas vairākos eksemplāros, tāpēc Process metode var tikt izpildīta paralēli. Lai novērstu to pašu rindu apstrādi, tiek izmantots pesimistiskās bloķēšanas PostgreSQL Select for update ... skip locked mehānisms. IBus ieviešana sūta ziņojumus uz 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;" } }; ```
Kad notiek slēgšana (closure)?
Pastāstiet par savu pēdējo darba vietu — Severstal. Ar ko jūs nodarbojāties, cik ilgi strādājāt, kādu tehnoloģiju klāstu izmantojāt?
Kāpēc struktūra nevar manto?
Cik daudz atmiņas aizņem Date instances 32 un 64 bitu sistēmās?
IMemoryCache Kādi ir IMemoryCache lietošanas priekšrocības un trūkumi? Kas ir OWASP top 10? Koda metriki 1. Kādas ir jūsu zināmās koda kvalitātes metriki? 2. Vai jūs tās esat izmantojis? 3. Kā jūs tās aprēķinājāt? 4. Vai tās ir CI sastāvdaļa vai ad hoc? Slodze Ko jūs darītu, ja jūsu pakalpojums (tīmekļa lapa) iestrēgst testēšanas vai slodzes vidē, bet vietējā viss darbojas?
Kā labot, lai rādītu 0-9?
Kā darbojas transakcijas ar versijām MVCC?
Kāpēc lietojumprogramma ar datu bāzi darbojas vienā vidē un pasliktinās citā?