|
|
![]() SQL Server & Powershell: быстро, просто, параллельно. И больше не нужно выбирать 2 из 3-хСуббота, 06 Августа 2022 г. 15:14 (ссылка)
В настоящей статье описывается процесс параллельного выполнения операций над объектами базы данных Microsoft SQL Server (таблицы, индексы и т.д.) с использованием инструментария Powershell. Наиболее часто используемый сценарий - обслуживание таблиц в базе, но возможно исполнение любых ваших запросов в параллельном режиме. Если для вас это интересно, то... ...добро пожаловатьhttps://habr.com/ru/post/681166/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681166
![]() [Перевод] Оператор PIVOTВоскресенье, 17 Июля 2022 г. 09:50 (ссылка)
По материалам статьи Craig Freedman: The PIVOT Operator Несколько статей будут посвящены тому как в SQL Server реализован оператор PIVOT и UNPIVOT. Начнем с оператора PIVOT. Оператор PIVOT берет нормализованную таблицу и преобразует ее в другой вид, в котором столбцы результирующей таблицы получаются из значений исходной таблицы. Например, предположим, что мы хотим хранить данные о суммарной выручке от продаж за год по каждому из сотрудников. Для этих целей можно создать следующую таблицу: Читать далееhttps://habr.com/ru/post/677340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=677340
![]() [Перевод] Decorrelating SubqueriesЧетверг, 30 Июня 2022 г. 18:13 (ссылка)
По материалам статьи Craig Freedman: Decorrelating Subqueries В статье про скалярные подзапросы было несколько примеров, в которых оптимизатор мог переписать запрос с коррелированным подзапросом как запрос с соединением. Например, можно было видеть, как представленный ниже простой подзапрос с «in»: Читать далееhttps://habr.com/ru/post/674414/?utm_source=habrahabr&utm_medium=rss&utm_campaign=674414
![]() Эффективная генерация сортируемых GUID для первичных ключей БД на клиентеВторник, 10 Мая 2022 г. 18:46 (ссылка)
Использовать Поэтому, чаще всего, лучше пользоваться сгенерированными БД первичными ключами. В SQL Server, например, есть функция https://habr.com/ru/post/665024/?utm_source=habrahabr&utm_medium=rss&utm_campaign=665024
![]() [Перевод] Serializable vs. Snapshot Isolation LevelСуббота, 23 Апреля 2022 г. 18:20 (ссылка)
По материалам статьи Craig Freedman: Serializable vs. Snapshot Isolation Level Уровни изоляции транзакций Serializable и Snapshot обеспечивают согласованное чтение из базы данных. На любом из этих уровней изоляции транзакция может читать только зафиксированные данные. Более того, транзакция может читать одни и те же данные несколько раз, не заботясь о каких-либо параллельных транзакциях, вносящих изменения в эти же данные. Те нежелательные эффекты, которые были продемонстрированы в предыдущих статьях при Read Committed и Repeatable Read, на уровнях изоляции Serializable и Snapshot просто невозможны. Читать далееhttps://habr.com/ru/post/662566/?utm_source=habrahabr&utm_medium=rss&utm_campaign=662566
![]() [Перевод] Уровень изоляции «Repeatable Read»Пятница, 22 Апреля 2022 г. 12:18 (ссылка)
По материалам статьи Craig Freedman: Repeatable Read Isolation Level В двух предыдущих статьях (1, 2) было продемонстрировано как запросы с уровнем изоляции «read committed» могли порождать неожиданные результаты. Это становилось возможным из-за выполняющихся в одно и то же время изменений затронутых запросом строк. Чтобы недопустить подобных неожиданностей (но не всех), следует использовать для выборки уровень изоляции «repeatable read». В этой статье мы как раз и рассмотрим как одновременные изменения ведут себя с уровнем изоляции «repeatable read» (повторяемое чтение). https://habr.com/ru/post/662407/?utm_source=habrahabr&utm_medium=rss&utm_campaign=662407
![]() [Перевод] План запроса с уровнем изоляции «Read Committed»Четверг, 21 Апреля 2022 г. 14:04 (ссылка)
По материалам статьи Craig Freedman: Query Plans and Read Committed Isolation Level В прошлый раз мы рассмотрели то, как одновременные изменения могут стать причиной просмотра на уровне изоляции read committed. Также было показано что эти условия могут привести к выборке одной и той же строки несколько раз или вообще к отсутствию строки в выборке. Теперь давайте рассмотрим как одновременные изменения могут отразиться на работе более сложных планов запроса. Читать далееhttps://habr.com/ru/post/662251/?utm_source=habrahabr&utm_medium=rss&utm_campaign=662251
![]() [Перевод] Scalar SubqueriesВторник, 19 Апреля 2022 г. 17:52 (ссылка)
По материалам статьи Craig Freedman: Scalar Subqueries Скалярный подзапрос — это подзапрос, который возвращает одну строку. Для некоторых запросов сразу видно ,что они скалярные. Пример: Читать далееhttps://habr.com/ru/post/661901/?utm_source=habrahabr&utm_medium=rss&utm_campaign=661901
![]() [Перевод] Semi-join TransformationВторник, 19 Апреля 2022 г. 11:37 (ссылка)
По материалам статьи Craig Freedman: Semi-join Transformation В предыдущих статьях я приводил примеры полу-соединений (semi-joins). Вспомним, что полу-соединение возвращает строку из таблицы, если для этой строки есть хотя бы одна совпадающая строка во второй таблице. Вот простой пример: Читать далееhttps://habr.com/ru/post/661757/?utm_source=habrahabr&utm_medium=rss&utm_campaign=661757
![]() [Перевод] Введение в секционирование таблицПонедельник, 18 Апреля 2022 г. 16:17 (ссылка)
В этой статье я собираюсь продемонстрировать особенности планов исполнения запросов при обращении к секционированным таблицам. Обратите внимание, что существует большая разница между секционированными таблицами (которые стали доступны только с SQL Server 2005) и секционированными представлениями (которые были доступных ещё в SQL Server 2000, и по-прежнему доступны в SQL Server 2005 и последующих версиях). Особенности планов запросов к секционированным представлениям я продемонстрирую в другой статье. Читать далееhttps://habr.com/ru/post/661571/?utm_source=habrahabr&utm_medium=rss&utm_campaign=661571
![]() [Перевод] Parallel Hash JoinЧетверг, 14 Апреля 2022 г. 12:05 (ссылка)
По материалам статьи Craig Freedman: Parallel Hash Join Перевод Ирины Наумовой. SQL Server использует один из двух вариантов стратегии распараллеливания хэш-соединения. Наиболее часто встречается хэш-секционирование (Hash Partitioning). Реже можно встретить Broadcast-секционирование; эту стратегию часто называют "Broadcast hash join". Хэш-секционирование Типичное распараллеливания хеш-соединения включает распределение строк компановки (т.е. строк из первого входого потока) и пробных строк (т.е. строк из второго входного потока) между отдельными потоками хэш-соединения с использованием хэш-секционирования. Если строки компановки и пробы имеют одни и те же значения ключа (т.е. они участвуют в соединении), такие хэши гарантированно попадут в один и тот же поток хэш-соединения. После того как данные были секционированы по хэшам между потоками, все экземпляры хэш-соединений работают полностью независимо от соответствующих им наборов данных. Отсутствие любых межпоточных зависимостей гарантирует, что эта стратегия будет давать очень хорошую масштабируемость по мере повышения степени параллелизма (т.е. числа потоков). https://habr.com/ru/post/660883/?utm_source=habrahabr&utm_medium=rss&utm_campaign=660883
![]() [Перевод] Parallel Nested Loops JoinСреда, 13 Апреля 2022 г. 11:07 (ссылка)
По материалам статьи Craig Freedman: Parallel Nested Loops Join Перевод Ирины Наумовой SQL Server распараллеливает Nested Loops Join, распределяя в случайном порядке строки внешней таблицы по потокам вложенных циклов. В данном случае, речь идёт о строках, которые поступают первыми, и мы их видим вверху, на графическом плане запроса. Например, если на входе соединения вложенных циклов имеется два потока, каждый поток получит приблизительно половину строк. Потоки проходятся по строкам внутренней таблицы соединения (то есть, по строкам, поданным во вторую очередь, мы их видим ниже в плане запроса), точно по такому же алгоритму, как это было бы реализовано в сценарии с последовательной обработкой строк. Таким образом, для каждой обрабатываемой потоком строки внешней таблицы, поток обеспечивает соединение своей внутренней таблицы, используя эту строку в качестве источника коррелированных параметров. Это позволяет потокам работать независимо друг от друга. При этом для внутренней таблицы соединения вложенных циклов SQL Server не добавляет операторы параллелизма и работу с ней не распараллеливает. Читать далееhttps://habr.com/ru/post/660635/?utm_source=habrahabr&utm_medium=rss&utm_campaign=660635
![]() [Перевод] Распараллеленный ПросмотрВторник, 12 Апреля 2022 г. 10:09 (ссылка)
По материалам статьи Craig Freedman: Parallel Scan Перевод Ирины Наумовой. В этой статье я собираюсь рассмотреть то, как SQL Server распараллеливает просмотр таблицы (сканирования - scans). Оператор просмотра - один из немногих операторов, которые адаптированы к параллелизму. Большинство других операторов ничего не знают о параллелизме, и не заботятся о том, выполняются ли они параллельно; оператор просмотра является в этом случае исключением. Читать далееhttps://habr.com/ru/post/660355/?utm_source=habrahabr&utm_medium=rss&utm_campaign=660355
|
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |