¿Qué se puede decir sobre la optimización del plan de consulta? MVCC Hay una tabla CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); y una consulta que se ejecuta cada segundo UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Después de unos días, notas: • el tamaño de la tabla ha crecido mucho • la consulta SELECT * FROM orders WHERE id = 1 funciona más lentamente Preguntas para el candidato 1. ¿Por qué crece la tabla, aunque la fila siempre sea la misma? 2. ¿Qué papel juega MVCC en esta situación? 3. ¿Qué debería resolver este problema?
C#
¿Qué es IAsyncDisposable?
¿Conoces vacuum y vacuum full?
¿Qué mostrará el programa con async/await: main imprime A, llama a saySomething (estático, devuelve Task), espera 5 segundos, luego D?
Tipos de transacciones / niveles de aislamiento?
¿Qué mostrará el programa si se descomenta throw en los lugares indicados?
¿Cuál es otro problema de la multitarea en el método Init?
¿No funcionaba con Linq2DB?
¿Cómo hacer que una clase sea iterable?
¿Qué pila de tecnologías utilizaron?
IMemoryCache — ¿ qué es y cuándo usarlo?
Revisión: código aplicado La clase contiene la lógica para procesar nuevos pedidos. Extrae los pedidos y las posiciones de la base de datos, luego realiza una llamada HTTP a un microservicio externo Stock, en el cual reserva los productos según las posiciones del pedido. Si todas las reservas se realizan con éxito, el microservicio confirma la reserva del pedido en Stock y marca el pedido como procesado. El microservicio se ejecuta en varias instancias, por lo que el método Process puede ejecutarse en paralelo. Para evitar procesar las mismas líneas, se utiliza un mecanismo de bloqueo pesimista en PostgreSQL Select for update ... skip locked. La implementación de IBus envía mensajes 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;" } }; ```
¿Cuándo ocurre el cierre (closure)?
Cuéntame sobre tu último lugar de trabajo — Severstal. ¿Qué hacías, cuánto tiempo trabajaste allí, cuál era la tecnología?
¿Por qué una struct no puede heredar?
¿Cuánta memoria ocupa una instancia de Date en sistemas de 32 y 64 bits?
¿Cómo arreglar para que muestre 0-9?
IMemoryCache ¿Cuáles son las ventajas y desventajas de usar IMemoryCache en una aplicación? ¿Qué es el top 10 de OWASP? Métricas de código 1. ¿Qué métricas de calidad de código conoces? 2. ¿Las has utilizado? 3. ¿Cómo las calculaste? 4. ¿Forma parte de CI o es ad hoc? Carga ¿Qué harías si tu servicio (página web) se cuelga en un entorno de prueba o de carga, pero localmente todo funciona?
¿Cómo funcionan las transacciones con las versiones en MVCC?
¿Por qué una aplicación con base de datos funciona en un entorno y se degrada en otro?