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

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

2
Продолжительный запрос Postgres прерывается, если соединение потеряно / разорвано?
Если я открою соединение с Postgres и выполню длительный запрос, а затем разорву соединение (например, уничтожу процесс клиента, открывший соединение), продолжит ли продолжительный запрос или он будет автоматически прерван? Это настраивается? (Я использую Postgresql 9.2.9)

5
Запрос на возврат имен выходных столбцов и типов данных запроса, таблицы или представления
Существует ли запрос или команда PostgreSQL, которая возвращает имена полей и типы полей запроса, таблицы или представления? Например, решение, если оно применяется к простому запросу SELECT, SELECT * from personдолжно возвращать список вроде: Column Name | Column Type =========================== First Name | character Last Name | character Age | integer …

3
Могу ли я указать значение по умолчанию для левого внешнего соединения?
Предположим, у меня есть таблицы a (со столбцом a1) и b (со столбцами b1 и b2), и я выполняю внешнее левое соединение SELECT * FROM a LEFT OUTER JOIN b ON a.a1 = b.b1 Тогда b1 и b2 будут равны NULL, если значение a1 не соответствует значению b1. Могу ли …
21 postgresql  join 

6
Выберите столбцы внутри json_agg
У меня есть запрос как: SELECT a.id, a.name, json_agg(b.*) as "item" FROM a JOIN b ON b.item_id = a.id GROUP BY a.id, a.name; Как я могу выбрать столбцы, bчтобы у меня не было b.item_idобъекта JSON? Я читал о ROW, но он возвращает объект JSON, как: {"f1": "Foo", "f2": "Bar"} Мне …

1
Первичный ключ с опцией «НЕ ДЛЯ РЕПЛИКАЦИИ»
Я недавно принял проект и обнаружил, что в большинстве таблиц первичный ключ имеет свойство " NOT FOR REPLICATION". Я не администратор, но наверняка в большинстве баз данных запись без первичного ключа будет считаться поврежденной. Первичный ключ большинства этих записей почти наверняка будет использоваться где-то как внешний ключ. Было ли это …

4
Как объединить две таблицы, чтобы получить пропущенные строки во второй таблице
В простой системе голосования, как CREATE TABLE elections ( election_id int(11) NOT NULL AUTO_INCREMENT, title varchar(255), CREATE TABLE votes ( election_id int(11), user_id int(11), FOREIGN KEYs для получения списка выборов, за которые проголосовал пользователь, используется следующий JOIN SELECT * FROM elections JOIN votes USING(election_id) WHERE votes.user_id='x' но как получить список …
21 join  select 

3
Запросите определение материализованного представления в Postgres
Мне интересно, как запросить определение материализованного представления в Postgres. Для справки, то, что я надеялся сделать, очень похоже на то, что вы можете сделать для обычного просмотра: SELECT * FROM information_schema.views WHERE table_name = 'some_view'; который дает вам следующие столбцы: table_catalog table_schema table_name view_definition check_option is_updatable is_insertable_into is_trigger_updatable is_trigger_deletable is_trigger_insertable_into …

2
Строка «Recheck Cond:» в планах запросов с проверкой растрового индекса
Это ответвление от комментариев к предыдущему вопросу: Запрос Postgres 9.4.4 длится вечно При использовании PostgreSQL 9.4 всегда появляется Recheck Cond:строка после сканирования растрового индекса в планах запросов, выводимых с помощью EXPLAIN. Как в EXPLAINвыводе упомянутого вопроса: -> Bitmap Heap Scan on table_three (cost=2446.92..19686.74 rows=8159 width=7) Recheck Cond: (("timestamp" > (now() …

1
Какой смысл фильтровать в MySQL объяснить?
Как описано здесь в документации по MySQL : Отфильтрованный столбец показывает приблизительный процент строк таблицы, которые будут отфильтрованы по условию таблицы. То есть, строки показывают приблизительное количество проверенных строк, а строки × отфильтрованные / 100 показывают количество строк, которые будут объединены с предыдущими таблицами. До MySQL 5.7.3 этот столбец отображается, …

1
Как включить кэширование набора результатов SQL Server 2019?
SQL Server 2019 CTP 2.3 добавил несколько новых столбцов в sys.database, включая is_result_set_caching_on: Это еще не задокументировано ни в разделе « Что нового в SQL Server 2019» , ни на странице « ALTER DATABASE» . Я попытался использовать тот же синтаксис, что и для Accelerated Database Recovery, просто для смеха: …

5
Можно ли повысить устойчивость к сбоям в SQL Server?
У нас есть ПК с SQL Server (2008 SP4 и 2016 SP1), которые регулярно теряют энергию. Очевидно, что это иногда приводит к (индексации) повреждению базы данных SQL Server, которую мы должны восстановить после этого. Мне известно, что SQL Server не предназначен для таких сценариев, и правильное решение состоит в том, …
20 sql-server  crash 

4
Рекомендации по диагностике «иногда» медленного запроса
У меня есть хранимая процедура, которая возвращает результаты из индексированного представления через индекс покрытия. Обычно он работает быстро (~ 10 мс), иногда он может работать до 8 секунд. Вот пример случайного выполнения (примечание: это не медленное выполнение, но текст запроса не отличается от значения, переданного через): declare @p2 dbo.IdentityType insert …

3
Большой (> 22 триллиона элементов) набор геопространственных данных с быстрой (<1 с) производительностью запросов чтения
Я нахожусь в процессе разработки новой системы для большого набора геопространственных данных, которая потребует быстрой обработки запросов на чтение. Поэтому я хочу посмотреть, думает ли кто-нибудь, что это возможно, или имеет опыт / совет относительно подходящих СУБД, структуры данных или альтернативных методов для достижения требуемой производительности в следующей ситуации: Данные …

2
Почему оператор конкатенации оценивает меньше строк, чем его входные данные?
В следующем фрагменте плана запроса кажется очевидным, что Concatenationдолжна быть оценка строки для оператора ~4.3 billion rowsили сумма оценок строки для двух входных данных. Тем не менее, оценка ~238 million rowsпроизводится, что приводит к неоптимальным Sort/ Stream Aggregateстратегии , которая переливается сотни ГБ данных базе данных TempDb. Логически непротиворечивая оценка …

1
Сервисный брокер был зарезервирован, теперь получает, но, похоже, не обрабатывает
Возникла проблема с уведомлениями о событиях. На машине / диске / базе данных, на которую отправляются сообщения (получатель), накопитель заполнялся, когда никто его не просматривал, поэтому он резервировался весь день. Теперь, когда мы освободили место на диске, он принимает сообщения в очередь, но, похоже, не обрабатывает их - новые записи …

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