Sobes.tech

Cosa si può dire sull'ottimizzazione del piano di query? MVCC C'è una tabella CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); e una query che viene eseguita ogni secondo UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Dopo alcuni giorni, si nota: • la dimensione della tabella è cresciuta molto • la query SELECT * FROM orders WHERE id = 1 funziona più lentamente Domande per il candidato 1. Perché la tabella cresce, anche se la riga è sempre la stessa? 2. Quale ruolo gioca MVCC in questa situazione? 3. Cosa dovrebbe risolvere questo problema?

Middle+
263

Cos'è IAsyncDisposable?

Middle+
228

Conosci vacuum e vacuum full?

Middle+
208

Cosa mostrerà il programma con async/await: main stampa A, chiama saySomething (statico, restituisce Task), aspetta 5 secondi, poi D?

Middle+
197

Tipi di transazioni / livelli di isolamento?

Middle+
196

Cosa mostrerà il programma se throw viene decommentato nei punti indicati?

Middle+
190

Qual è un altro problema con il multithreading nel metodo Init?

Middle+
187

Non funzionava con Linq2DB?

Middle+
183

Come rendere una classe iterabile?

Middle+
180

IMemoryCache — cos'è e quando usarlo?

Middle+
176

Quale stack tecnologico avete usato?

Middle+
176

Revisione: codice applicato La classe contiene la logica per elaborare nuovi ordini. Estrae gli ordini e le posizioni dal database, quindi effettua una chiamata HTTP a un microservizio esterno Stock, che riserva i prodotti in base alle posizioni dell'ordine. Se tutte le riserve vengono completate con successo, il microservizio conferma la riserva dell'ordine in Stock e segna l'ordine come elaborato. Il microservizio viene eseguito in più istanze, quindi il metodo Process può essere eseguito in parallelo. Per evitare di elaborare le stesse righe, viene utilizzato un meccanismo di blocco pessimistico in PostgreSQL Select for update ... skip locked. L'implementazione di IBus invia messaggi a 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

Quando avviene la chiusura (closure)?

Middle+
165

Parlami dell'ultimo posto di lavoro — Severstal. Cosa facevi, quanto hai lavorato lì, quale stack tecnologico?

Middle+
159

Perché una struct non può ereditare?

Middle+
158

Quanto spazio di memoria occupa un'istanza di Date in sistemi a 32 e 64 bit?

Middle+
155

IMemoryCache Quali sono i vantaggi e gli svantaggi dell'utilizzo di IMemoryCache in un'applicazione? Cos'è il top 10 di OWASP? Metriche del codice 1. Quali metriche di qualità del codice conosci? 2. Le hai usate? 3. Come le hai calcolate? 4. Fanno parte di CI o sono ad hoc? Carico Cosa faresti se il tuo servizio (pagina web) si blocca in un ambiente di test o di carico, ma localmente tutto funziona?

Middle+
148

Come correggere per visualizzare 0-9?

Middle+
148

Come funzionano le transazioni con le versioni in MVCC?

Middle+
147

Perché un'applicazione con database funziona in un ambiente e si degrada in un altro?

Middle+
146
/3