Sobes.tech

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?

Middle+
267

Kas ir IAsyncDisposable?

Middle+
236

Vai jūs zināt vacuum un vacuum full?

Middle+
209

Ko parādīs programma ar async/await: main izdrukā A, izsauc saySomething (statisku, atgriež Task), gaida 5 sekundes, tad D?

Middle+
201

Transakciju veidi / izolācijas līmeņi?

Middle+
198

Ko parādīs programma, ja throw tiks no komentēta norādītajās vietās?

Middle+
192

Kāda ir vēl viena problēma ar daudzprocesu Init metodē?

Middle+
190

Nestrādāja ar Linq2DB?

Middle+
184

Kā padarīt klasi iterējamu?

Middle+
181

Kādu tehnoloģiju steku viņi izmantoja?

Middle+
178

IMemoryCache — kas tas ir un kad izmantot?

Middle+
178

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;" } }; ```

Middle+
175

Kad notiek slēgšana (closure)?

Middle+
166

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?

Middle+
163

Kāpēc struktūra nevar manto?

Middle+
162

Cik daudz atmiņas aizņem Date instances 32 un 64 bitu sistēmās?

Middle+
159

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?

Middle+
151

Kā labot, lai rādītu 0-9?

Middle+
151

Kā darbojas transakcijas ar versijām MVCC?

Middle+
150

Kāpēc lietojumprogramma ar datu bāzi darbojas vienā vidē un pasliktinās citā?

Middle+
149
/3