Внезапно

Про баг в MSSQL 2000 и обратную совместимость

Базы данных  /  Внезапно Database  /  Microsoft

Приходит как-то ко мне мой коллега Дима Писаренко и говорит — “есть вопрос по SQL, но это надо видеть”. И таки-да, это стоило увидеть :)

Как думаете, что возвращал подобный запрос (любое сходство с реальными данными случайно)?

SELECT name, B as A FROM (SELECT 'first' as name, 1 as A, 2 as B UNION SELECT 'second', 2, 1) T1 ORDER BY T1.A;

Проблемы с connection pool и уровнями изоляции транзакций

Базы данных  /  Внезапно dotNET  /  Databases  /  Microsoft

Продолжаю тему, начатую ранее про дырявые абстракции и TransactionScope. Сегодня ещё одна короткая заметка из категории “Внезапно” и снова про уровни изоляции.

Знаете ли вы, какой будет уровень изоляции, когда вы откроете соединение (для определённости — SqlConnection)? Вопрос с подвохом. Правильный ответ, как обычно — It depends.

Внимание! TransactionScope по умолчанию включает Serializable.

Базы данных  /  Внезапно dotNET  /  CSharp

Сегодня о TransactionScope, уровне изоляции транзакций Serializable и дырявых абстракциях.

Вообще говоря, я раньше много раз сталкивался с распределёнными транзакциями. В какой-то момент я окончательно сформировал своё мнение по этой теме. Получилось что-то вроде: “хватит, я не буду их использовать вообще, разве что в ход со стороны оппонента пойдут огнестрельное оружие и прочие нечестные аргументы”.

По этой причине моё знакомство с TransactionScope свелось к его использованию в интеграционных тестах (без распределённой составляющей, просто для удобного отката транзакций) и редким спорам с коллегами. Но сегодня, внезапно…