Администраторы базы данных

Вопросы и ответы для специалистов по базам данных, которые хотят улучшить свои навыки работы с базами данных и учиться у других в сообществе

6
Запрос подробных различий между строками для большого количества данных
У меня есть несколько больших таблиц, каждая с> 300 столбцами. Приложение, которое я использую, создает «архивы» измененных строк, делая копию текущей строки во вторичной таблице. Рассмотрим тривиальный пример: CREATE TABLE dbo.bigtable ( UpdateDate datetime, PK varchar(12) PRIMARY KEY, col1 varchar(100), col2 int, col3 varchar(20), . . . colN datetime ); …

1
Почему COALESCE в подзапросе возвращает NULL?
Учитывая эту схему: CREATE TABLE #TEST_COALESCE ( Id int NOT NULL, DateTest datetime NOT NULL, PRIMARY KEY (Id, DateTest) ); INSERT INTO #TEST_COALESCE VALUES (1, '20170201'), (1, '20170202'), (1, '20170203'), (2, '20170204'), (2, '20170205'), (2, '20170206'); Если я использую COALESCE в подзапросе, он возвращает NULL. SELECT t1.Id, t1.DateTest, (SELECT TOP …
15 sql-server 

1
Безопасно ли добавлять новый узел в кластер Cassandra во время ремонта?
Я готовлюсь к расширению существующего кластера Cassandra. У меня запланирован ремонт на повторяющейся основе. Нужно ли отключать исправления при добавлении нового узла в кластер, или я могу загрузить новые узлы, пока исправления выполняются в другом месте кластера?

2
Запрос на присоединение занимает 11 минут для выполнения таблицы 300 000 строк
Ниже запрос занимает более 11 минут для выполнения. SELECT `c`.*, `e`.`name` AS `employee_name`, `e`.`emp_no`, `d`.`code` AS `department_code`, IF(ew.code IS NOT NULL, ew.code, egw.code) AS shift_code, IF(ew.code IS NOT NULL, ew.time_in_from, egw.time_in_from) AS time_in_from, IF(ew.code IS NOT NULL, ew.time_out_to, egw.time_out_to) AS time_out_to, IF(ew.code IS NOT NULL, ew.next_day, egw.next_day) AS next_day FROM …

4
Удаление столбцов в PostgreSQL 9.6 и побочные эффекты для функций SQL с CTE
Если бы у меня была таблица с 3 столбцами - скажем, A, B и D - и мне пришлось бы ввести новую - скажем, C, чтобы заменить текущую позицию D. Я бы использовал следующий метод: Введите 2 новых столбца как C и D2. Скопируйте содержимое D в D2. Удалить D. …

3
Двоичный путь в настройках pgAdmin
Я установил PostgreSQL, потому что мне нужно восстановить большой .backupфайл, который я получил для загрузки на другую платформу (это 38 миллионов строк, что, по-видимому, было слишком большим для человека, чтобы экспортировать его любым другим способом). Когда я пытаюсь «восстановить» в pgAdmin 4, я получаю сообщение: Пожалуйста, настройте двоичный путь PostgreSQL …


2
Как проверить наличие символов, отличных от Ascii
Каков наилучший способ проверить наличие в поле VARCHAR символов, отличных от Ascii? CHAR(1)через CHAR(31)и CHAR(127)через CHAR(255). Я попытался использовать PATINDEXи столкнулся со следующей проблемой. Проверка нижнего диапазона работала правильно. SELECT * FROM mbrnotes WHERE PATINDEX('%[' + CHAR(1)+ '-' +CHAR(31)+']%',LINE_TEXT) > 0 Мои данные имели три записи с 0x1E и все …

2
Как SQL Удалить, используя подзапрос
Следующий код был добавлен одним из наших разработчиков для удаления дублирующихся записей из таблицы: DELETE SubQuery FROM ( SELECT ID ,FK1 ,FK2 ,CreatedDateTime ,ROW_NUMBER() OVER(PARTITION BY FK1, FK2 ORDER BY CreatedDateTime) AS RowNumber FROM Table ) AS SubQuery WHERE RowNumber > 1 При рассмотрении кода я предполагал, что он не …

1
План выполнения с несколькими отсутствующими индексами
Если вы выполните запрос с «Включить фактический план выполнения», план также предложит отсутствующие индексы. Детали индекса находятся внутри MissingIndexesтега в XML. Есть ли ситуация, когда план включает несколько предложений по индексам? Я пробовал разные sql-запросы, но не смог найти ни одного запроса, который генерирует два или более отсутствующих индекса.

2
Можно ли дефрагментировать системные таблицы SQL Server?
У нас есть несколько баз данных, в которых создается и удаляется большое количество таблиц. Из того, что мы можем сказать, SQL Server не выполняет никакого внутреннего обслуживания системных базовых таблиц , что означает, что они могут со временем стать очень фрагментированными и раздутыми по размеру. Это создает ненужное давление на …

3
Почему мой запрос EXISTS выполняет сканирование индекса вместо поиска индекса?
Я работаю над оптимизацией некоторых запросов. Для запроса ниже SET STATISTICS IO ON; DECLARE @OrderStartDate DATETIME2 = '27 feb 2016'; DECLARE @OrderEndDate DATETIME2 = '28 feb 2016'; SELECT o.strBxOrderNo , o.sintOrderStatusID , o.sintOrderChannelID , o.sintOrderTypeID , o.sdtmOrdCreated , o.sintMarketID , o.strOrderKey , o.strOfferCode , o.strCurrencyCode , o.decBCShipFullPrice , o.decBCShipFinal , …

3
Хранимая процедура базы данных с «режимом предварительного просмотра»
Довольно распространенным шаблоном в приложении базы данных, с которым я работаю, является необходимость создания хранимой процедуры для отчета или утилиты, которая имеет «режим предварительного просмотра». Когда такая процедура выполняет обновления, этот параметр указывает, что результаты действия должны быть возвращены, но процедура на самом деле не должна выполнять обновления базы данных. …
15 sql-server  t-sql 

2
Более новая версия SQL Server менее стабильна?
Наш архитектор баз данных сказал нашему клиенту, что SQL Server 2014 - плохой выбор по сравнению с 2012 годом, поскольку в нем отсутствуют преимущества производительности и стабильности, которые есть у 2012 года. Все, что я прочитал, противоречит этому. Аарон Бертран говорит, что все наоборот, и все официальные документы, которые я …

3
Резервные копии журнала транзакций: последовательные или параллельные?
Мы используем SQL Server 2012 Standard Edition. Мне также довелось использовать сценарии Олы Хелленгрен, чтобы обеспечить более простую и гибкую среду для резервного копирования и обслуживания. Этот вопрос не столько о сценариях Олы, сколько о лучшей практике. Я понимаю, что окончательный ответ «это зависит от требований вашей компании». Но я …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.