Latest posts

Senior SQL Developer
21 Sept, 20:58
#вопросы_с_собеседований Объясните, как вы бы оптимизировали производительность SQL-запроса, работающего медленно на большом объеме данных. Какие факторы вы бы учли и какие методы применили?Этот вопрос проверяет понимание кандидатом принципов оптимизации запросов и управления производительностью баз данных. Ответ должен включать обсуждение различных аспектов, таких как использование индексов, понимание плана выполнения запроса, анализ статистики базы данных, а также методы оптимизации, такие как денормализация данных или изменение структуры запроса. Кандидат также может обсудить использование определенных инструментов для профилирования и мониторинга производительности запросов.
Senior SQL Developer
20 Sept, 20:58
#вопросы_с_собеседований Как в SQL можно определить и устранить "фантомное чтение" в транзакциях и какие уровни изоляции транзакций необходимо учитывать для предотвращения этого явления?"Фантомное чтение" в SQL - это ситуация, когда транзакция читает набор строк дважды и получает разные результаты из-за изменений, внесенных другими транзакциями. Для устранения фантомного чтения можно использовать уровни изоляции транзакций, такие как SERIALIZABLE, который предотвращает фантомное чтение, обеспечивая полную изоляцию транзакции. Однако использование высоких уровней изоляции может снизить производительность из-за увеличения блокировок и ожидания.
Senior SQL Developer
19 Sept, 19:07
#вопросы_с_собеседований Как SQL-запрос с использованием операторов JOIN может быть оптимизирован для ускорения выполнения, если одна из таблиц содержит миллионы записей, а другая – только несколько сотен? Опишите три различных подхода к оптимизацииИспользование Индексов: Создание индексов на столбцах, участвующих в JOIN, может значительно ускорить процесс, особенно на столбцах большой таблицы. Если JOIN выполняется по столбцу, который является первичным ключом или имеет уникальный индекс, это обычно обеспечивает наилучшую производительность.Оптимизация Порядка JOIN: Порядок, в котором таблицы соединяются в запросе, может влиять на производительность. Лучше начинать с таблицы с наименьшим количеством строк (в данном случае, таблицы с несколькими сотнями записей), что может уменьшить количество обрабатываемых данных на более ранней стадии выполнения запроса.Использование
Senior SQL Developer
18 Sept, 20:29
Представьте, что у вас есть две таблицы: Orders и Customers. Таблица Orders содержит поля OrderID, CustomerID, и OrderDate. Таблица Customers содержит CustomerID, Name, и City.Напишите запрос SQL, который покажет имена всех клиентов из города "New York", которые сделали более двух заказов.


Senior SQL Developer
17 Sept, 20:43
Дана следующая таблица:| OrderID | CustomerID | OrderDate | TotalAmount | |---------|------------|------------|-------------| | 1 | 1001 | 2022-05-01 | 150.00 | | 2 | 1002 | 2022-06-15 | 250.00 | | 3 | 1001 | 2022-07-20 | 100.00 | | 4 | 1003 | 2022-08-10 | 300.00 | | 5 | 1002 | 2022-09-05 | 200.00 |Какой из следующих SQL запросов отберет заказы, сделанные покупателем с ID равным 1001?A) SELECT FROM Orders WHERE CustomerID = 1001 B) SELECT FROM Orders WHERE CustomerID = '1001' C) SELECT FROM Orders WHERE CustomerID = '1001' ORDER BY OrderDate DESC D) SELECT FROM Orders WHERE CustomerID = 1001 AND TotalAmount > 200.00
Senior SQL Developer
15 Sept, 20:57
#вопросы_с_собеседований Почему стоит пользоваться PDO для работы с базой данных?БезопасностьPDO предоставляет встроенные механизмы защиты от SQL-инъекций, которые являются одним из наиболее распространенных способов взлома веб-приложений. Использование подготовленных запросов в PDO позволяет избежать SQL-инъекций и значительно повысить безопасность вашего приложения.Поддержка нескольких типов баз данныхPDO обеспечивает унифицированный API для работы с различными типами баз данных, такими как MySQL, PostgreSQL, SQLite и др. Это означает, что вы можете использовать один и тот же код для работы с разными базами данных без необходимости переписывать его для каждой отдельной базы данных.Повторное использование кодаPDO позволяет повторно использовать код благодаря использованию параметров. Вы можете создать один раз запрос, а затем использовать его многократно с разными


Senior SQL Developer
14 Sept, 20:55
Короткие функции MS Acess (часть 1)1. Функция LCase используется для преобразования строки в нижний регистр.2. Функция Left используется для извлечения ряда символов из строки (начиная слева).3. Функция Len используется для получения длины строки.4. Функция LTrim используется для удаления начальных пробелов из строки.



Senior SQL Developer
13 Sept, 20:58
Команда SHRINK FILEКоманда SHRINK FILE используется для уменьшения размера физического файла базы данных SQL Server.Уменьшение размера файла может быть полезным в следующих случаях:- Файл базы данных был увеличен в размере, но большая часть его не используется. - Файл базы данных был скопирован на другой диск и теперь необходимо освободить место на исходном диске. - Файл базы данных был резервно скопирован и теперь необходимо освободить место на диске.Для использования команды SHRINK FILE необходимо выполнить следующие шаги:1. Определить имя файла базы данных и имя файла журнала транзакций, которые вы хотите уменьшить. 2. Определить новый размер файла базы данных и файла журнала транзакций. 3. Выполнить команду SHRINK FILE с использованием определенных значений.При использовании команды SHRINK FILE необходимо учитывать следующие нюансы:- Уменьшение размера файла может


Senior SQL Developer
12 Sept, 20:37
Локальные и глобальные временные таблицы, в чем разница?1. Локальные временные таблицы создаются с помощью ключевого слова # перед именем таблицы. Они видны только в рамках текущей сессии соединения и уничтожаются после завершения сессии.2. Глобальные временные таблицы создаются с помощью ключевого слова ## перед именем таблицы. Они видны всем сеансам подключения и уничтожаются после того, как последний сеанс закроется.Еще одно отличие заключается в том, что глобальные таблицы могут использоваться для обмена данными между сеансами подключения.Скорость работы локальных временных таблиц выше, чем у глобальных временных таблиц, поскольку они не создаются в tempdb, как глобальные таблицы.


Senior SQL Developer
11 Sept, 21:01
#вопросы_с_собеседованийРасскажите о видах индексовИндексы - это структуры данных, которые ускоряют выполнение запросов к базе данных. Они содержат отображение значений столбцов таблицы на соответствующие строки, что позволяет быстро находить нужные данные.1. Кластерный индекс - определяется для каждой таблицы только один. Он определяет порядок расположения строк в таблице на основе значений одного или нескольких столбцов.2. Некластерный индекс - это индекс, который не определяет порядок строк в таблице, а существует отдельно от таблицы. Он представляет собой отображение значений одного или нескольких столбцов на соответствующие строки.3. Уникальный индекс - уникальный индекс который гарантирует уникальность значений в столбцах, на которые он определен. На таблицу можно определить несколько уникальных индексов.4. Полнотекстовый индекс - полнотекстовый индекс позволяет быстро


Senior SQL Developer
10 Sept, 20:38
MySQL: SQRTФункция SQRT используется для вычисления квадратного корня из числа.Синтаксис функции выглядит следующим образом: SQRT(X) - Здесь X - это число, из которого нужно извлечь квадратный корень.Функция SQRT может использоваться для вычисления квадратного корня из любого числа, в том числе отрицательного.Применение функции SQRTФункция SQRT может быть полезна во многих случаях. Например, вы можете использовать ее для вычисления расстояния между двумя точками на плоскости. Для этого нужно вычислить квадрат разности координат по каждой оси, затем сложить эти значения и извлечь квадратный корень из полученной суммы.


Senior SQL Developer
9 Sept, 20:53
MySQL: DIVФункция DIV в MySQL возвращает целочисленное деление двух заданных чисел. Она принимает два аргумента: делимое и делитель, и возвращает результат деления в виде целого числа.Синтаксис функции DIV выглядит следующим образом: DIV(dividend, divisor) - Здесь dividend - это делимое, а divisor - это делитель. Оба аргумента должны быть числами. Если один из аргументов NULL, то результатом будет NULL.Пример использования функции DIVПредположим, у нас есть таблица с информацией о продажах. Нам нужно вычислить среднее количество продаж в день, зная общее количество продаж и количество дней, в течение которых эти продажи были сделаны. Мы можем использовать функцию DIV для вычисления среднего количества продаж в день


Senior SQL Developer
7 Sept, 20:49
Поиск таймаутов выполнения запросов SQL ServerКогда вы работаете с SQL Server, вы, вероятно, столкнулись с ситуацией, когда запрос занимает слишком много времени и в конечном итоге приводит к ошибке тайм-аута.Вот некоторые советы для улучшения производительности и снижения тайм-аута:- Используйте SQL Server Management Studio (SSMS) для управления и настройки SQL Server, а также для поиска таймаутов выполнения запросов. Используйте SQL Server Profiler для отслеживания и анализа производительности запросов.- Используйте динамические управляемые представления, такие как sys.dm_exec_requests и sys.dm_exec_sessions, чтобы получить информацию о запросах, выполняемых на сервере, и определить, какие из них занимают слишком много времени.- Используйте инструменты мониторинга производительности, такие как SQL Sentry, Idera SQL Diagnostic Manager и Microsoft System Center Operations1,030Open in Telegram
Senior SQL Developer
6 Sept, 19:08
#вопросы_с_собеседований Что такое аномалия сериализации?Для двух транзакций, скажем, A и B, возможны только два варианта упорядочения при их последовательном выполнении:1️⃣ сначала A, затем B2️⃣ сначала B, затем A.Причем результаты реализации двух вариантов могут не совпадать.Например, при выполнении двух банковских операций — внесения некоторой суммы денег на какой-то счет и начисления процентов по этому счету — важен порядок выполнения операций.Если изначально на счете было 1000 у.е. и первой операцией будет увеличение суммы на 1000 у.е., а второй — начисление процентов (10%), то тогда итоговая сумма будет больше (2200 у.е.), чем при противоположном порядке выполнения этих операций (2100 у.е.).Если описанные операции выполняются в рамках двух различных транзакций, то оказываются возможными различные итоговые результаты, зависящие от порядка их выполнения.Сериализация1,040Open in Telegram
Senior SQL Developer
3 Sept, 20:38
Оператор CROSS APPLYCROSS APPLY - это оператор, который применяет правую таблицу выражения к каждой строке левой таблицы выражения и возвращает только те строки, которые имеют соответствующие значения в правой таблице выражения.Оператор CROSS APPLY очень похож на оператор JOIN, но в отличие от JOIN, оператор CROSS APPLY может использоваться с табличными функциями, что позволяет более эффективно объединять данные из разных таблиц.В примере с фото мы используем оператор CROSS APPLY, чтобы присоединить к каждому клиенту его последний заказ. Мы используем табличную функцию, которая возвращает максимальную дату заказа для каждого клиента.
1,120Open in Telegram
Senior SQL Developer
2 Sept, 20:56
Операция UNPIVOTUNPIVOT - используется для преобразования столбцов таблицы в строки. Эта операция позволяет пользователям преобразовывать данные в формат, который легче анализировать.Синтаксис операции UNPIVOT выглядит следующим образом:SELECT {колонка-идентификатор}, {колонка-значение} FROM {имя таблицы} UNPIVOT ( {колонка-значение} FOR {колонка-идентификатор} IN ({список столбцов}) ) unpvt{колонка-идентификатор} - это столбец, который будет содержать идентификаторы строк таблицы. {колонка-значение} - это столбец, который будет содержать значения таблицы.{имя таблицы} - это таблица, которую нужно преобразовать. {список столбцов} - это список столбцов, которые нужно преобразовать.
1,140Open in Telegram
Senior SQL Developer
31 Aug, 20:58
Индекс RINИндекс RIN - это один из видов индексов в SQL, который используется для ускорения выполнения запросов на выборку данных из таблицы. Он создается на столбце с уникальными идентификаторами строк таблицы.Для создания индекса RIN необходимо выполнить следующий запрос: CREATE UNIQUE CLUSTERED INDEX idx_rin ON {название таблицы} ({название столбца})Индекс RIN использует для своей работы структуру B-дерева. Каждый узел этой структуры содержит ссылки на другие узлы, что позволяет быстро находить нужную строку в таблице.1. Преимущества использования индекса RIN- Ускорение выполнения запросов на выборку данных из таблицы. - Увеличение производительности вставки, обновления и удаления строк в таблице. - Гарантия уникальности идентификаторов строк таблицы.2. Недостатки использования индекса RIN- Увеличение размера таблицы из-за дополнительных структур данных, необходимых для
1,140Open in Telegram
Senior SQL Developer
29 Aug, 20:55
QUOTENAME в SQL ServerQUOTENAME - это функция, которая используется для заключения идентификаторов объектов базы данных в квадратные скобки. Это может быть полезно, если вы работаете с идентификаторами, содержащими пробелы или специальные символы.Синтаксис функции QUOTENAME: QUOTENAME ( 'character_string' [ , 'quote_character' ] )- character_string: строка, содержащая идентификатор объекта базы данных - quote_character: необязательный параметр, определяющий символ, использованный для заключения идентификатора в кавычки. По умолчанию используется одинарная кавычка.QUOTENAME также может использоваться для построения динамических запросов, где идентификаторы объектов могут быть заданы в виде параметров.Но следует помнить, что QUOTENAME не защищает от SQL-инъекций, поэтому не следует полагаться на неё полностью для защиты вашей базы данных от атак.


Senior SQL Developer
28 Aug, 20:50
Мониторинг использования индексаКак правило, со временем число индексов в базе данных увеличивается.Сколько раз вы проверяли, действительны ли они? Индексы занимают место на диске и немалое, особенно в больших таблицах. Поэтому всегда лучше проверить, какие из них используются, а потом решить, удалять их или нет.Для этой цели сначала необходимо включить мониторинг индексов: ALTER INDEX INDEX_NAME MONITORING USAGE;Для отключения этой опции достаточно выполнить следующую инструкцию: ALTER INDEX INDEX_NAME NOMONITORING USAGE;Перед удалением индекса, который, по вашему мнению, бездействует, рекомендуется продолжить работу мониторинга на определенное время. Это нужно для того, чтобы выявить возможные batch-процессы, которые задействуют этот индекс и выполняются нечасто.
1,130Open in Telegram
Senior SQL Developer
27 Aug, 20:19
Функция DEGREES - SQL ServerФункция DEGREES используется для преобразования значения в радианах в значение в градусах. Эта функция принимает один аргумент, который должен быть числом в радианах, и возвращает это значение в градусах.Синтаксис: - DEGREES ( numeric_expression ) Параметры: - numeric_expression - значение в радианах, которое нужно преобразовать в градусы. Это значение должно быть числом.
1,130Open in Telegram
Related Channels
Other channels in the same section of the catalogue.
