Найдено результатов: 417

Двоичные данные в MySQL

Как хранить двоичные данные в MySQL ?

mysql   database   binary-data   data-storage    

617   9   16:03, 1st July, 2020


Вызов ошибки в триггере MySQL

Если у меня есть trigger before the update на таблице, как я могу бросить ошибку, которая предотвращает обновление на этой таблице?

mysql   database   triggers    

1090   6   16:03, 1st July, 2020


Проверьте наличие изменений в таблице сервера SQL?

Как я могу контролировать базу данных сервера SQL на предмет изменений в таблице без использования триггеров или изменения структуры базы данных каким-либо образом? Моя предпочтительная среда программирования-это .NET и C#.

Я хотел бы иметь возможность поддерживать любой SQL Server 2000 SP4 или новее. Мое приложение - это простая визуализация данных для продукта другой компании. Наша клиентская база исчисляется тысячами, поэтому я не хочу вводить требования, чтобы мы изменяли таблицу сторонних поставщиков при каждой установке.

Под "changes to a table" я подразумеваю изменения в табличных данных, а не изменения в структуре таблицы.

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


Лучший способ действия, учитывая мои требования (никаких триггеров или модификаций схемы, SQL Server 2000 и 2005), по-видимому, заключается в использовании функции BINARY_CHECKSUM в T-SQL . Вот как я планирую это осуществить:

Каждые X секунд выполняйте следующий запрос:

SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM sample_table
WITH (NOLOCK);

И сравните это с сохраненным значением. Если значение изменилось, пройдите по строкам таблицы с помощью запроса:

SELECT row_id, BINARY_CHECKSUM(*)
FROM sample_table
WITH (NOLOCK);

И сравните возвращенные контрольные суммы с сохраненными значениями.

sql   sql-server   datatable   rdbms    

601   8   16:03, 1st July, 2020


Базы данных плоских файлов

Каковы наилучшие методы создания структур базы данных плоских файлов в PHP?

Многие из более зрелых PHP плоских файловых фреймворков, которые я вижу, пытаются реализовать SQL-подобный синтаксис запроса, который в большинстве случаев является избыточным для моих целей (я бы просто использовал базу данных в этой точке).

Есть ли какие-то элегантные трюки, чтобы получить хорошую производительность и функции с небольшими накладными расходами кода?

php   sql   database   flat-file    

485   11   16:03, 1st July, 2020


Декодирование T-SQL приведено в C#/VB.NET

Недавно наш сайт был затоплен с возрождением asprox ботнет SQL инъекции атаки. Не вдаваясь в подробности, атака пытается выполнить код SQL, кодируя команды T-SQL в кодированной строке ASCII BINARY. Это выглядит примерно так:

DECLARE%20@S%20NVARCHAR(4000);SET%20@S=CAST(0x44004500...06F007200%20AS%20NVARCHAR(4000));EXEC(@S);--

Я смог расшифровать это в SQL, но я немного опасался делать это, так как я не знал точно, что происходило в то время.

Я попытался написать простой инструмент декодирования, чтобы я мог декодировать этот тип текста, даже не касаясь сервера SQL . Основная часть, которую мне нужно декодировать, - это:

CAST(0x44004500...06F007200 AS
NVARCHAR(4000))

Я пробовал все следующие команды без удачи:

txtDecodedText.Text =
    System.Web.HttpUtility.UrlDecode(txtURLText.Text);
txtDecodedText.Text =
    Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(txtURLText.Text));
txtDecodedText.Text =
    Encoding.Unicode.GetString(Encoding.Unicode.GetBytes(txtURLText.Text));
txtDecodedText.Text =
    Encoding.ASCII.GetString(Encoding.Unicode.GetBytes(txtURLText.Text));
txtDecodedText.Text =
    Encoding.Unicode.GetString(Convert.FromBase64String(txtURLText.Text));

Как правильно перевести эту кодировку без использования SQL Server? Возможно ли это? Я возьму код VB.NET, так как я тоже знаком с этим.


Хорошо, я уверен, что я что-то упускаю, так что вот где я нахожусь.

Поскольку мой ввод является основной строкой, я начал с фрагмента закодированной части-4445434C41 (что переводится как DECLA) - и первая попытка была сделать это...

txtDecodedText.Text = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(txtURL.Text));
...

и все, что он сделал, это вернул то же самое, что я вставил, так как он преобразовал каждый символ в байт.

Я понял, что мне нужно разобрать каждые два символа в байт вручную, так как я еще не знаю никаких методов, которые это сделают, поэтому теперь мой маленький декодер выглядит примерно так:

while (!boolIsDone)
{
    bytURLChar = byte.Parse(txtURLText.Text.Substring(intParseIndex, 2));
    bytURL[intURLIndex] = bytURLChar;
    intParseIndex += 2;
    intURLIndex++;

    if (txtURLText.Text.Length - intParseIndex < 2)
    {
        boolIsDone = true;
    }
}

txtDecodedText.Text = Encoding.UTF8.GetString(bytURL);

Все выглядит хорошо для первой пары пар, но затем цикл останавливается, когда он добирается до пары "4C" и говорит, что строка находится в неправильном формате.

Интересно, что когда я перехожу через отладчик и к методу GetString на массиве байтов, который я смог разобрать до этого момента, я получаю", - + " в результате.

Как мне выяснить, что мне не хватает - нужно ли мне делать "direct cast" для каждого байта вместо того, чтобы пытаться разобрать его?

c#   sql   vb.net   ascii   hex    

484   2   16:03, 1st July, 2020


ASP.NET Карты Сайтов

Есть ли у кого-нибудь опыт создания поставщиков карт сайтов на основе SQL ASP.NET ?

У меня есть файл по умолчанию XML web.sitemap , который правильно работает с моими элементами управления меню и SiteMapPath , но мне нужен способ для пользователей моего сайта динамически создавать и изменять страницы.

Мне также нужно привязать разрешения на просмотр страниц к стандартной системе членства ASP.NET .

sql   asp.net   xml   sitemap    

470   1   16:03, 1st July, 2020


Как экспортировать данные из SQL Server 2005 в MySQL

Я бился головой о SQL Server 2005 , пытаясь получить много данных. Мне дали базу данных с почти 300 таблицами в ней, и мне нужно превратить ее в базу данных MySQL. Мой первый вызов состоял в том, чтобы использовать bcp, но, к сожалению, он не производит допустимые CSV - строки не инкапсулируются, поэтому вы не можете иметь дело ни с одной строкой, в которой есть строка с запятой (или что бы вы ни использовали в качестве разделителя), и мне все равно придется вручную написать все инструкции create table, поскольку очевидно, что CSV ничего не говорит вам о типах данных.

Что было бы лучше, если бы существовал какой-то инструмент, который мог бы подключиться как к серверу SQL, так и к серверу MySQL, а затем сделать копию. Вы теряете представления, хранимые процедуры, триггер и т. д., но нетрудно скопировать таблицу, которая использует только базовые типы, из одного DB в другой... так ли это?

Кто-нибудь знает о таком инструменте? Я не возражаю против того, сколько предположений он делает или какие упрощения происходят, пока он поддерживает integer, float, datetime и string. Мне приходится много заниматься обрезкой, нормализацией и т. д. в любом случае, я не забочусь о сохранении ключей, отношений или чего-то подобного, но мне нужен начальный набор данных быстро!

mysql   sql-server   csv   sql-server-2005   bcp    

546   5   16:03, 1st July, 2020


Управление версиями SQL база данных сервера

Я хочу, чтобы мои базы данных были под контролем версий. Есть ли у кого-нибудь какие-нибудь советы или Рекомендуемые статьи, чтобы я начал работу?

Я всегда буду хотеть иметь там хотя бы некоторые данные (как упоминает alumb: типы пользователей и администраторы). Мне также часто требуется большая коллекция сгенерированных тестовых данных для измерения производительности.

sql-server   database   svn   version-control    

546   25   16:03, 1st July, 2020


Сервер Обновления SQL 6.5

Да, я знаю. Существование запущенной копии SQL Server 6.5 в 2008 году абсурдно.

Таким образом, каков наилучший способ перехода с 6.5 на 2005 ? Есть ли прямой путь? Большая часть документации, которую я нашел, касается обновления 6.5 до 7 .

Должен ли я забыть о собственных утилитах обновления SQL Server , сценарий из всех объектов и данных, и попытаться воссоздать с нуля?

Я собирался попробовать обновление в эти выходные, но проблемы с сервером отодвинули его до следующего. Таким образом, любые идеи будут приветствоваться в течение недели.

Обновление. Вот как я закончил это делать:

  • Создайте резервную копию базы данных, о которой идет речь, и мастер на 6.5 .
  • Выполните SQL Server 2000 's instcat.sql против 6.5' S Master. Это позволяет поставщику SQL Server 2000 ' s OLEDB подключиться к 6.5 .
  • Используйте SQL Server 2000 ' s standalone "Import and Export Data" для создания пакета DTS, используя OLEDB для подключения к 6.5. Это успешно скопировало все таблицы 6.5 в новую базу данных 2005 (также используя OLEDB ).
  • Используйте 6.5 ' S Enterprise Manager, чтобы записать все индексы и триггеры базы данных в A .sql файл.
  • Исполни это .Файл sql для новой копии базы данных в среде Management Studio 2005 года.
  • Используйте 6.5's Enterprise Manager для создания сценариев всех хранимых процедур.
  • Выполните этот файл .sql в базе данных 2005 . У нескольких десятков sprocs были проблемы, делающие их несовместимыми с 2005 . В основном non-ANSI joins и quoted identifier issues .
  • Исправлены все эти ошибки и повторно выполнен файл .sql .
  • Воссоздал логины 6.5 в 2005 и дал им соответствующие разрешения.

Было немного промывки/повтора при исправлении хранимых процедур (их было сотни, чтобы исправить), но обновление прошло отлично в противном случае.

Возможность использовать Management Studio вместо Query Analyzer и Enterprise Manager 6.5 -это такая удивительная разница. Несколько запросов отчетов, которые заняли 20-30 секунду на 6.5 database , теперь выполняются за 1-2 секунды, без каких-либо изменений, новых индексов или чего-либо еще. Я не ожидал такого немедленного улучшения.

sql-server   migration    

543   4   16:03, 1st July, 2020


SQL Server 2005 реализация функции MySQL REPLACE INTO?

MySQL имеет эту невероятно полезную, но правильную команду REPLACE INTO SQL.

Можно ли это легко эмулировать в SQL Server 2005?

Запуск новой транзакции, выполнение Select() , а затем либо UPDATE , либо INSERT и COMMIT -это всегда немного больно, особенно когда вы делаете это в приложении и поэтому всегда сохраняете 2 версии инструкции.

Интересно, есть ли простой и универсальный способ реализовать такую функцию в SQL Server 2005?

mysql   sql-server   sql-server-2005    

454   4   16:03, 1st July, 2020


Создание базы данных SQLite на основе набора данных XSD

Кто-нибудь знает, есть ли способ создать базу данных SQLite на основе XSD DataSet ? В прошлом я просто использовал базовый менеджер SQLite, но хочу немного больше объединить вещи с моей разработкой .NET , если это возможно.

.net   database   sqlite    

490   3   16:03, 1st July, 2020


Существует ли система контроля версий для изменения структуры базы данных?

Я часто сталкиваюсь со следующей проблемой.

Я работаю над некоторыми изменениями в проекте, которые требуют новых таблиц или столбцов в базе данных. Я делаю изменения в базе данных и продолжаю свою работу. Обычно я не забываю записать изменения, чтобы они могли быть воспроизведены в живой системе. Однако я не всегда помню, что я изменил, и не всегда помню, чтобы записать это.

Итак, я делаю толчок к живой системе и получаю большую, очевидную ошибку , что нет NewColumnX, тьфу.

Независимо от того, что это может быть не лучшим решением для данной ситуации, существует ли система контроля версий для баз данных? Меня не волнует конкретная технология баз данных. Я просто хочу знать, существует ли он. Если это случится работать с сервером MS SQL, то отлично.

sql   database   oracle   version-control    

686   22   16:03, 1st July, 2020


Развертывание баз данных сервера SQL из теста в жизнь

Мне интересно, как вы, ребята, управляете deployment базой данных между 2 SQL серверами, а именно SQL Server 2005. Теперь есть развитие и живое. Поскольку это должно быть частью buildscript (стандартный пакет windows, даже с текущей сложностью этих сценариев я мог бы переключиться на PowerShell или около того позже), Enterprise Manager/Management Studio Express не учитываются.

Не могли бы вы просто скопировать файл .mdf и прикрепить его? Я всегда немного осторожен при работе с двоичными данными, так как это, похоже, проблема совместимости (даже если разработка и live должны работать в одной и той же версии сервера в любое время).

Или-учитывая отсутствие "EXPLAIN CREATE TABLE" в T-SQL - вы делаете что-то, что экспортирует существующую базу данных в SQL-скрипты, которые можно запустить на целевом сервере? Если да, то есть ли инструмент, который может автоматически сбрасывать заданную базу данных в запросы SQL и который запускается из командной строки? (Опять же, Enterprise Manager / Management Studio Express не учитываются).

И наконец-учитывая тот факт, что живая база данных уже содержит данные, deployment может не включать в себя создание всех таблиц, а вместо этого проверять разницу в структуре и изменять таблицу живых, что также может потребовать проверки/преобразования данных при изменении существующих полей.

Теперь я слышу много замечательных вещей о продуктах Red Gate , но для хобби-проектов цена немного завышена.

Итак, что вы используете для автоматического развертывания баз данных сервера SQL из теста в жизнь?

sql-server   sql-server-2005   deployment   release-management    

413   14   16:03, 1st July, 2020


cx_Oracle: Как выполнить итерацию по результирующему набору?

Существует несколько способов перебора результирующего набора. Каков компромисс каждого из них?

python   sql   database   oracle   cx-oracle    

587   3   16:03, 1st July, 2020


Замена уникальных индексированных значений столбцов в базе данных

У меня есть таблица базы данных, и одно из полей (не первичный ключ) имеет уникальный индекс. Теперь я хочу поменять местами значения под этим столбцом для двух строк. Как же это можно было сделать? Два хака, которые я знаю, это:

  1. Удалите обе строки и вставьте их заново.
  2. Обновить строки с некоторым другим значением и поменять местами, а затем обновить до фактического значения.

Но я не хочу идти на это, поскольку они не кажутся подходящим решением проблемы. Кто-нибудь может мне помочь?

sql   database    

438   12   16:03, 1st July, 2020


Почему провайдер VFP .NET OLEdb не работает в 64-битном Windows?

Я написал службу windows, используя VB, которая считывает некоторые устаревшие данные из баз данных Visual Foxpro, которые будут вставлены в SQL 2005. Проблема заключается в том, что это использование прекрасно работает в Windows server 2003 32-бит, но клиент недавно перешел на Windows 2003 64-бит, и теперь служба не будет работать. Я получаю сообщение, что поставщик VFP .NET OLEdb не найден. Я исследовал, и все, кажется, указывает на то, что нет никакого решения. Любая помощь, пожалуйста...

.net   sql-server-2005   oledb   legacy   visual-foxpro    

651   3   16:03, 1st July, 2020


Python и MySQL

Я могу заставить Python работать с Postgresql, но я не могу заставить его работать с MySQL. Основная проблема заключается в том, что на общей учетной записи хостинга у меня нет возможности устанавливать такие вещи, как Django или PySQL, я обычно не могу установить их на свой компьютер, поэтому, возможно, это хорошо, что я не могу установить на хосте.

Я нашел bpgsql действительно хорошим, потому что он не требует установки, это один файл, который я могу посмотреть, прочитать, а затем вызвать функции. Кто-нибудь знает что-то подобное для MySQL?

python   mysql   postgresql   bpgsql    

545   6   16:03, 1st July, 2020


Редактирование записей базы данных несколькими пользователями

Я разработал таблицы баз данных (нормализованные, на сервере MS SQL) и создал автономный интерфейс windows для приложения, которое будет использоваться несколькими пользователями для добавления и редактирования информации. Мы добавим веб-интерфейс, который позволит осуществлять поиск по всему нашему производственному району в более поздние сроки.

Я обеспокоен тем, что если два пользователя начнут редактировать одну и ту же запись, то последним, кто зафиксирует обновление, будет 'winner', и важная информация может быть потеряна. На ум приходит множество решений, но я не уверен, что создам еще большую головную боль.

  1. Ничего не делайте и надейтесь, что два пользователя никогда не будут редактировать одну и ту же запись одновременно. - Может быть, никогда и не случится, но что, если это случится?
  2. Процедура редактирования может хранить копию исходных данных, а также обновления, а затем сравнить, когда пользователь закончил редактирование. Если они отличаются, показывают пользователя и подтверждают обновление -потребуется две копии данных для хранения.
  3. Добавьте последний обновленный столбец DATETIME и проверьте его соответствие при обновлении, если нет, то покажите различия. - требуется новый столбец в каждой из соответствующих таблиц.
  4. Создайте таблицу редактирования, которая регистрируется, когда пользователи начинают редактировать запись, которая будет проверена и не позволит другим пользователям редактировать ту же запись. - потребуется тщательное продумывание потока программ, чтобы предотвратить блокировку тупиков и записей, которые будут заблокированы, если пользователь выйдет из программы.

Есть ли какие-то лучшие решения или я должен пойти на одно из них?

sql-server   database    

481   8   16:03, 1st July, 2020


Сопоставление клиента и сервера SQL 2005

Мы модернизируем существующую программу с Win2k/SQL Server 2k до Windows 2003 and SQL Server 2005 , а также приобретаем новую программу, которая также использует 2k3/2k5 . Поставщик говорит, что для размещения обеих баз данных нам нужно получить корпоративную версию, потому что клиенты программного обеспечения используют разные параметры сортировки для соединений, и только предприятие поддерживает это.

Я не могу найти ничего на сайте MS, чтобы поддержать это, и, честно говоря, не хочу платить дополнительную плату за Enterprise, если стандартная версия работает. Мне не хватает какой - то не обсуждаемой функции сервера SQL или это, как я подозреваю, поставщик пытается меня перепродать?

sql-server   sql-server-2005   windows-server-2003    

446   1   16:03, 1st July, 2020


Строковые литералы и escape-символы в postgresql

Попытка вставить escape-символ в таблицу приводит к появлению предупреждения.

Например:

create table EscapeTest (text varchar(50));

insert into EscapeTest (text) values ('This is the first part \n And this is the second');

Выдает предупреждение:

WARNING:  nonstandard use of escape in a string literal

( Используя PSQL 8.2 )

Кто-нибудь знает, как это обойти?

string   postgresql   escaping    

501   5   16:03, 1st July, 2020


Почему SQL полнотекстовая индексация не возвращает результаты для слов, содержащих #?

Например, мой запрос выглядит следующим образом, используя SQL Server 2005:

SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#') 

У меня есть полнотекстовый индекс, определенный для использования столбца SearchField, который возвращает результаты при использовании:

SELECT * FROM Table WHERE SearchField LIKE '%c#%'

Я считаю, что # - это специальная буква, поэтому как я могу разрешить FREETEXT правильно работать для запроса выше?

sql   sql-server   sql-server-2005   indexing   full-text-search    

467   2   16:03, 1st July, 2020


Как работает индексация баз данных?

Учитывая, что индексация так важна, поскольку ваш набор данных увеличивается в размере, может ли кто-нибудь объяснить, как индексирование работает на уровне базы данных-агностика?

Сведения о запросах для индексации поля см. В разделе Как индексировать столбец базы данных .

sql   database   performance   indexing   database-indexes    

933   8   16:03, 1st July, 2020


Как индексировать столбец базы данных

Надеюсь, я смогу получить ответы для каждого сервера баз данных.

Для получения общих сведений о том, как работает индексация, ознакомьтесь с разделом: как работает индексация базы данных?

sql   database   indexing    

455   8   16:03, 1st July, 2020


Насколько большой может быть база данных MySQL, прежде чем производительность начнет снижаться

В какой момент база данных MySQL начинает терять производительность?

  • Имеет ли значение физический размер базы данных?
  • Имеет ли значение количество записей?
  • Является ли любое снижение производительности линейным или экспоненциальным?

У меня есть то, что я считаю большой базой данных, с примерно 15М записями, которые занимают почти 2 ГБ. Основываясь на этих цифрах, есть ли у меня стимул Очистить данные, или я могу позволить им продолжать масштабироваться еще несколько лет?

mysql   database   database-performance    

540   14   16:03, 1st July, 2020


Перехват SQL инъекций и других вредоносных веб-запросов

Я ищу инструмент, который может обнаруживать вредоносные запросы (такие как очевидные SQL инъекций получает или сообщения) и сразу же запретит IP адрес запрашивающего/добавить в черный список. Я знаю, что в идеальном мире наш код должен уметь обрабатывать такие запросы и относиться к ним соответственно, но в таком инструменте есть большая ценность даже тогда, когда сайт защищен от подобных атак, поскольку он может привести к экономии пропускной способности, предотвращению раздутия аналитики и т. д.

В идеале я ищу кросс-платформенное решение (LAMP/.NET), которое находится на более высоком уровне, чем технологический стек; возможно, на уровне веб-сервера или аппаратного обеспечения. Хотя я не уверен, что это существует.

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

sql   xss   sql-injection    

451   8   16:03, 1st July, 2020


Подходит ли Windows Server 2008 "Server Core" для экземпляра сервера SQL?

На этой неделе я устанавливаю выделенную коробку SQL Server 2005 на Windows Server 2008 и хотел бы сократить ее, чтобы она была как можно более простой, но при этом полностью функциональной.

С этой целью вариант "Server Core" звучит привлекательно,но я не совсем понимаю, могу ли я запустить сервер SQL на этом SKU. Несколько служб адресованы на веб- сайте Microsoft, но я не вижу никаких указаний на SQL Server.

Кто-нибудь знает точно?

sql-server   windows-server-2008    

374   6   16:03, 1st July, 2020


Как лучше всего обрабатывать несколько типов разрешений?

Я часто сталкиваюсь со следующим сценарием, когда мне нужно предложить много различных типов разрешений. Я в основном использую ASP.NET / VB.NET с SQL Server 2000.

Сценарий

Я хочу предложить динамическую систему разрешений, которая может работать с различными параметрами. Допустим, я хочу предоставить доступ к приложению либо отделу, либо просто конкретному человеку. И представьте, что у нас есть ряд приложений, которые продолжают расти.

В прошлом я выбрал один из двух известных мне способов сделать это.

  1. Используйте одну таблицу разрешений со специальными столбцами, которые используются для определение способа применения параметров. Специальные колонки в это примеры TypeID и TypeAuxID. SQL будет выглядеть как-то странно подобный этому.

    SELECT COUNT(PermissionID)
    FROM application_permissions
    WHERE
    (TypeID = 1 AND TypeAuxID = @UserID) OR
    (TypeID = 2 AND TypeAuxID = @DepartmentID)
    AND ApplicationID = 1
    
  2. Используйте таблицу сопоставления для каждого типа разрешений, а затем соедините их все вместе.

    SELECT COUNT(perm.PermissionID)
    FROM application_permissions perm
    LEFT JOIN application_UserPermissions emp
    ON perm.ApplicationID = emp.ApplicationID
    LEFT JOIN application_DepartmentPermissions dept
    ON perm.ApplicationID = dept.ApplicationID
    WHERE q.SectionID=@SectionID
      AND (emp.UserID=@UserID OR dept.DeptID=@DeptID OR
     (emp.UserID IS NULL AND dept.DeptID IS NULL)) AND ApplicationID = 1
    ORDER BY q.QID ASC
    

свои мысли

Я надеюсь, что эти примеры имеют смысл. Я сложил их вместе.

Первый пример требует меньше работы, но ни один из них не кажется лучшим ответом. Есть ли лучший способ справиться с этим?

sql   permissions    

358   5   16:03, 1st July, 2020


Как лучше всего скопировать базу данных?

Когда я хочу сделать копию базы данных, я всегда создаю новую пустую базу данных, а затем восстанавливаю в нее резервную копию существующей базы данных. Однако мне интересно, действительно ли это наименее подверженный ошибкам, наименее сложный и наиболее эффективный способ сделать это?

sql-server   sql-server-2008    

415   5   16:03, 1st July, 2020


Механизмы отслеживания изменений схемы DB

Каковы наилучшие методы отслеживания и / или автоматизации изменений схемы DB? Наша команда использует Subversion для управления версиями, и мы смогли автоматизировать некоторые из наших задач таким образом (перемещение сборок на промежуточный сервер, развертывание тестируемого кода на рабочий сервер), но мы все еще делаем обновления базы данных вручную. Я хотел бы найти или создать решение, которое позволит нам эффективно работать на разных серверах с различными средами, продолжая использовать Subversion в качестве бэкенда, через который код и обновления DB передаются на различные серверы.

Многие популярные программные пакеты включают в себя сценарии автоматического обновления, которые обнаруживают версию DB и применяют необходимые изменения. Является ли это лучшим способом сделать это даже в более крупном масштабе (через несколько проектов, а иногда и через несколько сред и языков)? Если да, то есть ли какой-либо существующий код, который упрощает этот процесс, или лучше всего просто запустить наше собственное решение? Кто-нибудь реализовывал что-то подобное раньше и интегрировал его в Subversion post-commit hooks, или это плохая идея?

Хотя решение, поддерживающее несколько платформ, было бы предпочтительнее, мы определенно должны поддерживать стек Linux/Apache/MySQL/PHP, поскольку большая часть нашей работы находится на этой платформе.

php   mysql   database   svn   migration    

517   20   16:03, 1st July, 2020


Можно ли логически переупорядочить столбцы в таблице?

Если я добавляю столбец в таблицу в Microsoft SQL Server, могу ли я контролировать, где этот столбец логически отображается в запросах?

Я не хочу возиться с физическим расположением столбцов на диске, но я хотел бы логически сгруппировать столбцы вместе, когда это возможно, чтобы инструменты, такие как SQL Server Management Studio, отображали содержимое таблицы удобным способом.

Я знаю, что могу сделать это с помощью SQL Management Studio, перейдя в их режим "design" для таблиц и перетаскивая порядок столбцов вокруг, но я хотел бы иметь возможность сделать это в raw SQL, чтобы я мог выполнять упорядочивание по сценарию из командной строки.

sql-server    

465   8   16:03, 1st July, 2020


Подходят ли когда-нибудь несколько классов DataContext?

Чтобы полностью использовать LinqToSql в приложении ASP.net 3.5, необходимо создать классы DataContext (что обычно делается с помощью конструктора в VS 2008). С точки зрения UI, DataContext-это дизайн разделов вашей базы данных, которые вы хотели бы предоставить через LinqToSql, и является неотъемлемой частью в настройке функций ORM LinqToSql.

Мой вопрос: я настраиваю проект, который использует большую базу данных, где все таблицы связаны каким-то образом через внешние ключи. Моя первая склонность-сделать один огромный класс DataContext, который моделирует всю базу данных. Таким образом, я мог бы теоретически (хотя я не знаю, понадобится ли это на практике) использовать внешние ключевые соединения, которые генерируются через LinqToSql, чтобы легко переходить между связанными объектами в моем коде, вставлять связанные объекты и т. д.

Однако после некоторых размышлений я теперь думаю, что может быть более целесообразно создать несколько классов DataContext, каждый из которых относится к определенному пространству имен или логическому взаимосвязанному разделу в моей базе данных. Моя главная проблема заключается в том, что создание и удаление одного огромного класса DataContext все время для отдельных операций, связанных с конкретными областями базы данных, будет налагать ненужное наложение на ресурсы приложения. Кроме того, легче создавать и управлять меньшими файлами DataContext, чем одним большим. То, что я потеряю, - это то, что будут некоторые удаленные разделы базы данных, которые не будут доступны для навигации через LinqToSql (даже если цепочка отношений соединяет их в реальной базе данных). Кроме того, будут существовать некоторые классы таблиц, которые будут существовать в более чем одном DataContext.

Любые мысли или опыт о том, являются ли множественные DataContexts (соответствующие пространствам имен DB) подходящими вместо (или в дополнение к) одному очень большому классу DataContext (соответствующему всему DB)?

asp.net   .net   linq-to-sql   datacontext    

483   5   16:03, 1st July, 2020


Какой язык вы используете для PostgreSQL триггеров и хранимых процедур?

PostgreSQL интересен тем, что он поддерживает несколько языков для написания хранимых процедур. Какой из них вы используете, и почему?

sql   database   postgresql   stored-procedures   triggers    

556   9   16:03, 1st July, 2020


Как выполнить модульный тест на постоянство?

Как новичок в практике разработки на основе тестов, я часто оказываюсь в затруднительном положении, когда речь заходит о том, как сохранить модульный тест в базе данных.

Я знаю, что технически это был бы интеграционный тест (а не юнит-тест), но я хочу выяснить лучшие стратегии для следующего:

  1. Тестовые запросы.
  2. Тестовые вставки. Как я узнаю, что вставка, которая пошла не так, если она не работает? Я могу проверить его, вставив и затем запросив, но как я могу знать, что запрос не был ошибочным?
  3. Тестирование обновлений и удалений -- то же самое, что тестирование вставок

Каковы наилучшие методы для этого?


Что касается тестирования SQL: я знаю, что это можно сделать, но если я использую o/R Mapper, как NHibernate, он прикрепляет некоторые бородавки именования в псевдонимах, используемых для выходных запросов, и поскольку это несколько непредсказуемо, я не уверен, что смогу это проверить.

Должен ли я просто бросить все и просто довериться NHibernate? Я не уверен, что это разумно.

sql-server   unit-testing   tdd    

369   10   16:03, 1st July, 2020


Вы когда-нибудь сталкивались с запросом, который SQL Server не мог выполнить, потому что он ссылался на слишком много таблиц?

Вы когда-нибудь видели там сообщения об ошибках?

-- SQL Server 2000

Не удалось выделить вспомогательную таблицу для разрешения представления или функции.
Было превышено максимальное количество таблиц в запросе (256).

-- SQL Server 2005

Слишком много имен таблиц в запросе. Максимально допустимое значение-256.

Если да, то что вы сделали?

Сдался? Убедили клиента упростить свои требования? Денормализовали базу данных?


@(все хотят, чтобы я опубликовал запрос):

  1. Я не уверен, что смогу вставить 70 килобайт кода в окно редактирования ответа.
  2. Даже если я смогу это сделать, это не поможет, так как эти 70 килобайт кода будут ссылаться на 20 или 30 просмотров, которые мне также придется опубликовать, так как в противном случае код будет бессмысленным.

Я не хочу, чтобы это прозвучало так, как будто я хвастаюсь здесь, но проблема не в запросах. Запросы являются оптимальными (или, по крайней мере, почти оптимальными). Я потратил бесчисленные часы на их оптимизацию, ища каждый отдельный столбец и каждую отдельную таблицу, которые можно удалить. Представьте себе отчет, содержащий 200 или 300 столбцов, которые должны быть заполнены одним оператором SELECT (потому что именно так он был разработан несколько лет назад, когда это был еще небольшой отчет).

sql-server   database   sql-server-2005   sql-server-2000    

474   8   16:03, 1st July, 2020


Автогенерация Диаграммы Базы Данных MySQL

Я устал открывать Dia и создавать схему базы данных в начале каждого проекта. Есть ли там инструмент, который позволит мне выбрать определенные таблицы, а затем создать схему базы данных для меня на основе базы данных MySQL? Предпочтительно, чтобы это позволило мне отредактировать диаграмму позже, так как ни один из внешних ключей не установлен...

Вот что я представляю себе схематично (пожалуйста, извините за ужасный дизайн данных, я его не проектировал. Давайте сосредоточимся на концепции диаграммы, а не на фактических данных, которые она представляет для этого примера ;) ):

diagram см. полноразмерную диаграмму

mysql   database   database-design   diagram    

671   14   16:03, 1st July, 2020


Использование нескольких баз данных SQLite одновременно

У меня есть 2 базы данных SQLite, одна загружена с сервера (server.db), а другая используется в качестве хранилища на клиенте ( client.db). Мне нужно выполнить различные запросы синхронизации в клиентской базе данных, используя данные из базы данных сервера.

Например, я хочу удалить все строки в таблице client.db tRole и повторно заполнить все строки в таблице server.db tRole .

Другой пример: я хочу удалить все строки в таблице client.db tFile , где fileID не находится в таблице server.db tFile .

В SQL Server вы можете просто префиксировать таблицу с именем базы данных. Есть ли вообще возможность сделать это в SQLite, используя Adobe Air?

actionscript-3   flex   sqlite   air   adobe    

544   3   16:03, 1st July, 2020


Вы когда-нибудь сталкивались с запросом, который SQL Server не мог выполнить, потому что он ссылался на слишком много таблиц?

Вы когда-нибудь видели там сообщения об ошибках?

-- SQL Server 2000

Не удалось выделить вспомогательную таблицу для разрешения представления или функции.
Было превышено максимальное количество таблиц в запросе (256).

-- SQL Server 2005

Слишком много имен таблиц в запросе. Максимально допустимое значение-256.

Если да, то что вы сделали?

Сдался? Убедили клиента упростить свои требования? Денормализовали базу данных?


@(все хотят, чтобы я опубликовал запрос):

  1. Я не уверен, что смогу вставить 70 килобайт кода в окно редактирования ответа.
  2. Даже если я смогу это сделать, это не поможет, так как эти 70 килобайт кода будут ссылаться на 20 или 30 просмотров, которые мне также придется опубликовать, так как в противном случае код будет бессмысленным.

Я не хочу, чтобы это прозвучало так, как будто я хвастаюсь здесь, но проблема не в запросах. Запросы являются оптимальными (или, по крайней мере, почти оптимальными). Я потратил бесчисленные часы на их оптимизацию, ища каждый отдельный столбец и каждую отдельную таблицу, которые можно удалить. Представьте себе отчет, содержащий 200 или 300 столбцов, которые должны быть заполнены одним оператором SELECT (потому что именно так он был разработан несколько лет назад, когда это был еще небольшой отчет).

sql-server   database   sql-server-2005   sql-server-2000    

497   8   16:03, 1st July, 2020


Автогенерация Диаграммы Базы Данных MySQL

Я устал открывать Dia и создавать схему базы данных в начале каждого проекта. Есть ли там инструмент, который позволит мне выбрать определенные таблицы, а затем создать схему базы данных для меня на основе базы данных MySQL? Предпочтительно, чтобы это позволило мне отредактировать диаграмму позже, так как ни один из внешних ключей не установлен...

Вот что я представляю себе схематично (пожалуйста, извините за ужасный дизайн данных, я его не проектировал. Давайте сосредоточимся на концепции диаграммы, а не на фактических данных, которые она представляет для этого примера ;) ):

diagram см. полноразмерную диаграмму

mysql   database   database-design   diagram    

562   14   16:03, 1st July, 2020


Использование нескольких баз данных SQLite одновременно

У меня есть 2 базы данных SQLite, одна загружена с сервера (server.db), а другая используется в качестве хранилища на клиенте ( client.db). Мне нужно выполнить различные запросы синхронизации в клиентской базе данных, используя данные из базы данных сервера.

Например, я хочу удалить все строки в таблице client.db tRole и повторно заполнить все строки в таблице server.db tRole .

Другой пример: я хочу удалить все строки в таблице client.db tFile , где fileID не находится в таблице server.db tFile .

В SQL Server вы можете просто префиксировать таблицу с именем базы данных. Есть ли вообще возможность сделать это в SQLite, используя Adobe Air?

actionscript-3   flex   sqlite   air   adobe    

719   3   16:03, 1st July, 2020


Соответствующий размер файла подкачки Windows O/S для сервера SQL

Знает ли кто-нибудь хорошее эмпирическое правило для соответствующего размера файла подкачки для сервера Windows 2003 под управлением сервера SQL?

sql-server   windows    

543   8   16:03, 1st July, 2020


Как мне split строку, чтобы я мог получить доступ к элементу x?

Используя SQL сервер, как мне split строку, чтобы я мог получить доступ к элементу x?

Возьмите строку "Hello John Smith". Как я могу split строку пробелом и получить доступ к элементу с индексом 1, который должен возвращать "John"?

sql   sql-server   tsql   split    

469   5   16:03, 1st July, 2020


Каков наилучший способ определить, существует ли временная таблица на сервере SQL?

При написании сценария T-SQL, который я планирую повторно запустить, часто я использую временные таблицы для хранения временных данных. Поскольку временная таблица создается на лету, я хотел бы иметь возможность удалить эту таблицу, только если она существует (до ее создания).

Я опубликую метод, который я использую, но я хотел бы посмотреть, есть ли лучший способ.

sql-server    

402   3   16:03, 1st July, 2020


Что мне нужно избежать при отправке запроса?

При выполнении запроса SQL необходимо очистить строки, иначе пользователи могут выполнить вредоносный запрос SQL на вашем веб-сайте.

У меня обычно просто есть функция escape_string(бла), которая:

  • Заменяет escapes ( \) на двойные escapes ( \\).
  • Заменяет одинарные кавычки (') на экранированные одинарные кавычки ( \').

Достаточно ли этого? Есть ли дыра в моем коде? Есть ли библиотека, которая может сделать это быстро и надежно для меня?

Я хотел бы видеть изящные решения в Perl, Java и PHP.

mysql   oracle   security    

543   11   16:03, 1st July, 2020


Как я могу использовать T-SQL Group By

Я знаю, что мне нужно иметь (хотя я не знаю, почему) предложение GROUP BY в конце запроса SQL, который использует любые агрегатные функции, такие как count, sum , avg и т. д:

SELECT count(userID), userName
FROM users
GROUP BY userName

Когда еще GROUP BY будет полезен, и каковы последствия для производительности?

sql   sql-server   group-by    

380   5   16:03, 1st July, 2020


Мне нужно знать, сколько места на диске таблица использует в SQL Server

Я думаю, что большинство людей знают, как это сделать с помощью GUI (щелкните правой кнопкой мыши таблицу, свойства), но делать это в T-SQL полностью скалы.

sql-server    

391   3   16:03, 1st July, 2020


Как удалить временную часть значения datetime (сервер SQL)?

Вот что я использую:

SELECT CAST(FLOOR(CAST(getdate() as FLOAT)) as DATETIME)

Я думаю, что может быть лучший и более элегантный способ.

Требования:

  • Это должно быть как можно быстрее (чем меньше отливок, тем лучше).
  • Конечным результатом должен быть тип datetime , а не строка.

sql-server   datetime   date-conversion    

515   0   16:03, 1st July, 2020


SQL Server 2000: есть ли способ определить, когда запись была изменена в последний раз?

В таблице нет последнего обновленного поля, и мне нужно знать, когда были обновлены существующие данные. Поэтому добавление последнего обновленного поля не поможет (насколько я знаю).

sql-server    

400   5   16:03, 1st July, 2020


SQL Server 2005 For XML Explicit - требуется форматирование справки

У меня есть таблица со структурой, подобной следующей:

------------------------------
LocationID     | AccountNumber
------------------------------
long-guid-here | 12345
long-guid-here | 54321

Чтобы перейти в другую хранимую процедуру, мне нужно, чтобы XML выглядел так:

<root> 
    <clientID>12345</clientID>
    <clientID>54321</clientID>
</root>

Лучшее, что я смог сделать до сих пор, это получить его таким образом:

<root clientID="10705"/>

Я использую этот оператор SQL:

SELECT
    1 as tag,
    null as parent,
    AccountNumber as 'root!1!clientID'
FROM
    Location.LocationMDAccount
WHERE
    locationid = 'long-guid-here'
FOR XML EXPLICIT

До сих пор я смотрел документацию на странице MSDN , но я не вышел с желаемыми результатами.


@KG,

Ваш дал мне этот выход на самом деле:

<root>
  <Location.LocationMDAccount>
    <clientId>10705</clientId>
  </Location.LocationMDAccount>
</root>

Я собираюсь придерживаться FOR XML EXPLICIT от Криса Леона на данный момент.

sql   xml   sql-server-2005   formatting   for-xml    

551   5   16:03, 1st July, 2020


Результаты Paging SQL Server 2005

Как сделать страницу результатов в SQL Server 2005?

Я попробовал это сделать в SQL Server 2000, но надежного способа сделать это не было. Теперь мне интересно, есть ли у SQL Server 2005 встроенный метод?

Например, если я перечисляю пользователей по их имени пользователя, я хочу иметь возможность возвращать только первые 10 записей, затем следующие 10 записей и так далее.

Любая помощь была бы очень признательна.

sql   sql-server-2005   paging    

400   6   16:03, 1st July, 2020


Как получить имя пользователя и пароль MySQL?

Я потерял свой MySQL логин и пароль. Как мне его вернуть?

mysql    

497   10   16:03, 1st July, 2020


Удалите все таблицы, имена которых начинаются с определенной строки

Я бы хотел, чтобы скрипт отбросил все таблицы, имя которых начинается с заданной строки. Я уверен, что это можно сделать с некоторыми динамическими таблицами sql и INFORMATION_SCHEMA .

Если у кого-то есть сценарий или он может быстро его создать, пожалуйста, опубликуйте его.

Если никто не отправит ответ до того, как я сам это выясню, я отправлю свое решение.

sql   sql-server   scripting   dynamic-sql    

501   14   16:03, 1st July, 2020


Есть ли какой-либо трюк, который позволяет использовать Management Studio (ver. 2008) функция IntelliSense с более ранними версиями сервера SQL?

Новая версия Management Studio (т. е. та, которая поставляется с SQL Server 2008), наконец, имеет функцию Transact-SQL IntelliSense. Однако out-of-the-box он работает только с экземплярами SQL Server 2008.

Есть ли какой-то обходной путь для этого?

sql   sql-server   database   sql-server-2008   intellisense    

438   2   16:03, 1st July, 2020


SQL Server 2005 и 2008 на одной машине разработчика?

Кто-нибудь пробовал установить SQL Server 2008 Developer на машину, на которой уже установлен 2005 Developer?

Я не уверен, стоит ли мне это делать, и мне нужно сохранить 2005 год на этой машине в обозримом будущем, чтобы легко протестировать наше приложение. Поскольку мне иногда нужно взять резервные копии файлов баз данных и сделать доступными для других людей в компании, я не могу просто заменить 2005 на 2008 год, поскольку подозреваю (но не знаю), что базы данных не 100% обратно совместимы.

Какие проблемы могут возникнуть? Нужно ли мне установить новую версию с именем экземпляра, будет ли это работать? Могу ли я использовать другой номер порта, чтобы различать их?

Я нашел эту запись в technet: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=3496209&SiteID=17

Это не говорит больше, чем просто да, вы можете сделать это , и я вроде бы подозревал, что это было выполнимо в любом случае, но мне нужно знать, есть ли что-то, что мне нужно знать, прежде чем я начну установку.

Кто-нибудь?

sql-server-2005   sql-server-2008   installation    

493   7   16:03, 1st July, 2020


SQL Синтаксис Выражения Case?

Каков полный и правильный синтаксис для выражения SQL Case?

sql   sql-server   oracle   syntax   case    

500   8   16:03, 1st July, 2020


MOSS SSP проблема-сбой входа в базу данных из удаленного SSP

У нас были некоторые проблемы с экземпляром SharePoint в тесте окружающая среда. К счастью, это не производство ;) проблемы начались когда закончился диск с базами данных сервера SQL и индексом поиска из космоса. После этого Служба поиска не будет работать и искать настройки в SSP были недоступны. Восстановление дискового пространства сделал не решить проблему. Поэтому вместо того, чтобы восстанавливать VM, мы решили попробуйте решить эту проблему.

Мы создали новый SSP и изменили ассоциацию всех сервисов на новый SSP. Старый SSP и его базы данных были затем удалены. Поиск результаты для файлов PDF больше не отображаются, но поиск работает в остальном все нормально. MySites также работает OK.

После реализации этого изменения возникают следующие проблемы:

1) в журнале событий приложений появилось сообщение об ошибке аудита, для 'DOMAIN\SPMOSSSvc', которое является учетной записью фермы MOSS.

Event Type: Failure Audit
Event Source: MSSQLSERVER
Event Category: (4)
Event ID: 18456
Date: 8/5/2008
Time: 3:55:19 PM
User: DOMAIN\SPMOSSSvc
Computer: dastest01
Description:
Login failed for user 'DOMAIN\SPMOSSSvc'. [CLIENT: <local machine>]

2) SQL Server profiler показывает запросы от SharePoint, которые ссылаются на старый (удалено) база данных SSP.

Так...

  • Где бы эти ссылки на DOMAIN\SPMOSSSvc и старый SSP база данных существует?
  • Есть ли способ 'completely' удалить SSP с сервера, и воссоздать? Опция удаления была недоступна (выделена серым цветом), Когда a один SSP находится на месте.

sql-server   database   sharepoint   search   ssp    

578   3   16:03, 1st July, 2020


Сколько накладных расходов на производительность базы данных при использовании LINQ?

Сколько накладных расходов на производительность базы данных связано с использованием C# и LINQ по сравнению с пользовательскими оптимизированными запросами, загруженными в основном низкоуровневыми C, как с серверной частью SQL Server 2008?

Я специально думаю здесь о случае, когда у вас есть довольно интенсивная программа для обработки данных, и вы будете делать обновление данных или обновление по крайней мере один раз на экране и будете иметь 50-100 одновременных пользователей.

sql-server   linq   performance   linq-to-sql    

548   2   16:03, 1st July, 2020


В какой момент кто-то должен решить переключить системы баз данных

При разработке ли его веб или рабочий стол в какой момент разработчик должен переключиться с SQLite, MySQL, MS SQL и т. д

sql   database    

399   3   16:03, 1st July, 2020


LINQ в SQL строк enums

LINQ - SQL позволяет сопоставлениям таблиц автоматически преобразовываться обратно и вперед в Enums, указывая тип столбца - это работает для строк или целых чисел.

Есть ли способ сделать преобразование нечувствительным к регистру или добавить пользовательский класс сопоставления или метод расширения в микс, чтобы я мог указать, как строка должна выглядеть более подробно.

Причины для этого могут заключаться в том, чтобы обеспечить более приятное соглашение об именах внутри некоторого нового фанкового кода C# в системе, где схема данных уже установлена (и полагается на некоторые устаревшие приложения), поэтому фактический текст в базе данных не может быть изменен.

linq-to-sql    

409   1   16:03, 1st July, 2020


Как мне организовать мой мастер ddl скрипт

В настоящее время я создаю master ddl для нашей базы данных. Исторически мы использовали резервное копирование / восстановление для версии нашей базы данных, а не поддерживали какие-либо сценарии ddl. Схема довольно большая.

Мое нынешнее мышление:

  • Разбейте скрипт на части (возможно, в отдельных скриптах):

    1. создание таблиц
    2. добавление индексов
    3. добавить триггеры
    4. добавить ограничения
  • Каждый сценарий вызывается главным сценарием.

  • Мне может понадобиться скрипт для временного удаления ограничений для тестирования
  • В схеме могут быть осиротевшие таблицы, я планирую идентифицировать подозрительные таблицы.

Еще какие-нибудь советы?

Edit: также, если кто-то знает хорошие инструменты для автоматизации части процесса, мы используем MS SQL 2000 (старый, я знаю).

sql   sql-server   schema   ddl    

533   7   16:03, 1st July, 2020


Блокировка базы данных сервера SQL с помощью PHP

Мне нужна дополнительная безопасность для определенной точки в моем веб-приложении. Поэтому я хочу заблокировать базу данных (SQL Server 2005). Любые предложения или это даже необходимо с SQL сервером?

Редактировать на вопрос:

Запрос не выполняется в автоматическом режиме без регистрации сообщений об ошибках и не происходит внутри транзакции.

окончательное решение:

Я никогда не мог решить эту проблему, однако то, что я сделал, было переключением на MySQL и использованием запроса транзакционного уровня здесь. Это не было главной или даже основной причиной для переключения. У меня были проблемы с сервером SQL, и это позволило мне иметь наш CMS и различные другие инструменты, работающие на одной базе данных. Ранее у нас был сервер SQL и база данных MySQL, работающая для запуска нашего сайта. Порт был немного трудоемким, однако в долгосрочной перспективе я чувствую, что он будет работать намного лучше для сайта и бизнеса.

php   sql-server   database   sql-server-2005    

472   2   16:03, 1st July, 2020


Больше, чем символ, но меньше, чем капля

Char отлично подходят, потому что они имеют фиксированный размер и, таким образом, делают более быструю таблицу. Однако они ограничены 255 символами. Я хочу держать 500 символов, но blob-это переменная длина, и это не то, что я хочу.

Есть ли способ иметь поле фиксированной длины 500 символов в MySQL или мне придется использовать 2 поля char?

mysql   database    

417   3   16:03, 1st July, 2020


Блокировка базы данных сервера SQL с помощью PHP

Мне нужна дополнительная безопасность для определенной точки в моем веб-приложении. Поэтому я хочу заблокировать базу данных (SQL Server 2005). Любые предложения или это даже необходимо с SQL сервером?

Редактировать на вопрос:

Запрос не выполняется в автоматическом режиме без регистрации сообщений об ошибках и не происходит внутри транзакции.

окончательное решение:

Я никогда не мог решить эту проблему, однако то, что я сделал, было переключением на MySQL и использованием запроса транзакционного уровня здесь. Это не было главной или даже основной причиной для переключения. У меня были проблемы с сервером SQL, и это позволило мне иметь наш CMS и различные другие инструменты, работающие на одной базе данных. Ранее у нас был сервер SQL и база данных MySQL, работающая для запуска нашего сайта. Порт был немного трудоемким, однако в долгосрочной перспективе я чувствую, что он будет работать намного лучше для сайта и бизнеса.

php   sql-server   database   sql-server-2005    

403   2   16:03, 1st July, 2020


Больше, чем символ, но меньше, чем капля

Char отлично подходят, потому что они имеют фиксированный размер и, таким образом, делают более быструю таблицу. Однако они ограничены 255 символами. Я хочу держать 500 символов, но blob-это переменная длина, и это не то, что я хочу.

Есть ли способ иметь поле фиксированной длины 500 символов в MySQL или мне придется использовать 2 поля char?

mysql   database    

375   3   16:03, 1st July, 2020


Функция подстроки Firebird SQL не работает

Я создал представление на машине, используя функцию подстроки из Firebird, и это сработало. Когда я скопировал базу данных на другую машину, представление было нарушено. Вот как я его использовал:

SELECT SUBSTRING(field FROM 5 FOR 15) FROM table;

И это выход на машине которая не принимает функцию:

token unknown:  FROM

Оба компьютера имеют такую конфигурацию:

  • IB Expert version 2.5.0.42 для выполнения запросов и работы с базой данных.
  • Firebird версия 1.5 как сервер к базе данных.
  • Установлена версия администрирования BDE 5.01 с драйверами Interbase 4.0.

Есть идеи о том, почему он ведет себя по-другому на этих машинах?

sql   firebird   interbase    

494   2   16:03, 1st July, 2020


SQL альтернативы Server Management Studio для просмотра / редактирования таблиц и выполнения запросов

Мне было интересно, есть ли какие-либо альтернативы Microsoft SQL Server Management Studio?

Нет ничего плохого в SSMS, но иногда это просто кажется слишком большим приложением, где все, что я хочу сделать, - это просмотреть/отредактировать таблицы и выполнить запросы.

sql-server    

522   12   16:03, 1st July, 2020


SQL Server 2008 FileStream на веб-сервере

Я разрабатывал сайт, используя ASP.NET MVC, и решил использовать новый объект SQL Server 2008 FILESTREAM для хранения файлов 'within' в базе данных, а не как отдельные сущности. Во время первоначальной работы в VS2008 (используя доверенное соединение с базой данных), все было хорошо и денди. Однако возникли проблемы, когда я переместил сайт на IIS7 и переключился на аутентификацию SQL в базе данных.

Похоже, что потоковая передача FILESTREAM не работает с аутентификацией SQL, только с аутентификацией Windows. Учитывая это, какова наилучшая практика для подражания?

  1. Есть ли способ заставить такую вещь работать под SQL аутентификацией?
  2. Должен ли я добавить NETWORK SERVICE в качестве пользователя базы данных, а затем использовать доверенную аутентификацию?
  3. Должен ли я создать другого пользователя и запустить как сайт IIS, так и соединение с базой данных под этим?
  4. Есть еще предложения?

sql-server   sql-server-2008   iis    

415   1   16:03, 1st July, 2020


Таблицы без первичного ключа

У меня есть несколько таблиц, единственными уникальными данными которых является столбец uniqueidentifier (Guid). Поскольку GUID не являются последовательными (и они генерируются на стороне клиента, поэтому я не могу использовать newsequentialid()), я сделал непервичный, некластеризованный индекс для этого поля ID, а не дал таблицам кластеризованный первичный ключ.

Мне интересно, каковы последствия этого подхода для производительности. Я видел, как некоторые люди предполагают, что таблицы должны иметь автоинкрементный ("identity") int в качестве кластеризованного первичного ключа, даже если он не имеет никакого значения, поскольку это означает, что сам компонент database engine может использовать это значение для быстрого поиска строки вместо того, чтобы использовать закладку.

Моя база данных реплицируется слиянием через кучу серверов, поэтому я избегаю столбцов identity int, поскольку они немного волосаты, чтобы получить право на репликацию.

О чем вы думаете? Таблицы должны иметь первичные ключи? Или это нормально-не иметь никаких кластеризованных индексов, если нет никаких разумных столбцов для индексирования таким образом?

sql-server   indexing    

567   6   16:03, 1st July, 2020


Как вернуть страницу результатов из SQL?

Многие приложения имеют сетки, которые отображают данные из таблицы базы данных по одной странице за раз. Многие из них также позволяют пользователю выбирать количество записей на странице, Сортировать по любому столбцу и перемещаться по результатам.

Что такое хороший алгоритм для реализации этого шаблона без приведения всей таблицы к клиенту и последующей фильтрации данных на клиенте. Как вы приносите только те записи, которые хотите показать пользователю?

Разве LINQ упрощает решение?

.net   sql   linq   pagination    

571   8   05:33, 9th August, 2020


Каковы преимущества явного Транзитивного замыкания соединения в SQL?

Когда я соединяю три или более таблиц вместе общим столбцом, я бы написал свой запрос следующим образом:

SELECT *
FROM   a, b, c
WHERE  a.id = b.id
AND    b.id = c.id

недавно коллега спросил меня, почему я не сделал явного Транзитивного закрытия соединения в своих запросах, подобных этому:

SELECT *
FROM   a, b, c
WHERE  a.id = b.id
AND    b.id = c.id
AND    c.id = a.id

действительно ли есть какие-то преимущества для этого? Конечно, оптимизатор может подразумевать это для себя?

edit: я знаю, что это злой синтаксис, но это быстрый и грязный пример законного унаследованного кода +1 @ Stu для его очистки

sql    

390   8   21:06, 1st October, 2020


SQL псевдонимы таблиц-хорошие или плохие?

Каковы плюсы и минусы использования псевдонимов таблиц в SQL? Я лично стараюсь избегать их, так как думаю, что они делают код менее читаемым (особенно при чтении больших операторов where/and), но мне было бы интересно услышать какие-либо контраргументы на это. Когда обычно рекомендуется использовать псевдонимы таблиц и есть ли у вас какие-либо предпочтительные форматы?

sql   alias    

376   17   03:40, 5th August, 2020


Каковы преимущества явного Транзитивного замыкания соединения в SQL?

Когда я соединяю три или более таблиц вместе общим столбцом, я бы написал свой запрос следующим образом:

SELECT *
FROM   a, b, c
WHERE  a.id = b.id
AND    b.id = c.id

недавно коллега спросил меня, почему я не сделал явного Транзитивного закрытия соединения в своих запросах, подобных этому:

SELECT *
FROM   a, b, c
WHERE  a.id = b.id
AND    b.id = c.id
AND    c.id = a.id

действительно ли есть какие-то преимущества для этого? Конечно, оптимизатор может подразумевать это для себя?

edit: я знаю, что это злой синтаксис, но это быстрый и грязный пример законного унаследованного кода +1 @ Stu для его очистки

sql    

472   8   06:02, 28th August, 2020


SQL псевдонимы таблиц-хорошие или плохие?

Каковы плюсы и минусы использования псевдонимов таблиц в SQL? Я лично стараюсь избегать их, так как думаю, что они делают код менее читаемым (особенно при чтении больших операторов where/and), но мне было бы интересно услышать какие-либо контраргументы на это. Когда обычно рекомендуется использовать псевдонимы таблиц и есть ли у вас какие-либо предпочтительные форматы?

sql   alias    

547   17   01:52, 13th August, 2020


ASP.NET кэширование

Недавно я исследовал возможности кэширования в ASP.NET.

Я свернул свой собственный "Cache", потому что я не знал ничего лучше, это выглядело немного так:

public class DataManager
{

      private static DataManager s_instance;

      public static DataManager GetInstance()
      {
      }

      private Data[] m_myData;
      private DataTime m_cacheTime;

      public Data[] GetData()
      {
            TimeSpan span = DateTime.Now.Substract(m_cacheTime);

            if(span.TotalSeconds > 10)
            {
                  // Do SQL to get data
                  m_myData = data;
                  m_cacheTime = DateTime.Now;
                  return m_myData;     
            }
            else
            {
                  return m_myData;
            }
      }

}

Таким образом, значения хранятся некоторое время в singleton, и когда время истекает, значения обновляются. Если время не истекло, и запрос на данные выполнен, то будут возвращены сохраненные значения в поле.

Каковы преимущества использования реального метода (http://msdn.microsoft.com/en-us/library/aa478965.aspx ) вместо этого?

asp.net   sql   caching    

431   3   07:06, 19th August, 2020


Условные Запросы Linq

Мы работаем над средством просмотра журналов. Использование будет иметь возможность фильтровать по пользователю, серьезности и т.д. В Sql дней я бы добавил к строке запроса, но я хочу сделать это с Linq. Как я могу условно добавить, где предложения?

c#   linq   linq-to-sql   .net-3.5    

483   13   02:35, 13th August, 2020


T-Sql формат даты в секундах с момента последней эпохи / форматирование для ввода sqlite

Я предполагаю, что это должно быть что-то вроде:

CONVERT(CHAR(24), lastModified, 101)

Однако я не уверен в правильном значении для третьего параметра.

Спасибо!


Ну, я пытаюсь написать сценарий для копирования моей базы данных сервера sql в файл sqlite, который загружается в приложение air, которое затем синхронизирует данные с другим файлом sqlite. У меня куча проблем с датами. Если я выбираю дату в air и пытаюсь вставить ее, это не удается, потому что она не в правильном формате... даже если это была действительная дата для начала. Я решил, что попробую поэкспериментировать с unix временем, так как это единственное, что работает до сих пор. Я рассматриваю возможность просто оставить их как varchar, потому что я все равно не сортирую по ним.

tsql   sqlite   date    

498   6   04:44, 14th August, 2020


Какая версия фреймворка .Net поставляется с SQL Server 2008?

Поставляется ли SQL Server 2008 с .NET 3.5 CLR, чтобы хранимые процедуры, написанные в CLR, могли использовать функции 3.5?

sql-server   sql-server-2008    

459   2   17:42, 27th August, 2020


Хорошие ресурсы для проектирования реляционных баз данных

Я ищу book/site/tutorial о лучших практиках для проектирования реляционных баз данных, настройки производительности и т. д. Оказывается, этот вид ресурса немного трудно найти; есть много "here's normalization, here's ER diagrams, have at it,", но не так много на пути реальных примеров. У кого-нибудь есть идеи?

sql   database   performance    

439   4   09:50, 8th August, 2020


Как отключить все текущие подключения к базе данных SQL Server 2005?

Я хочу переименовать базу данных, но продолжаю получать сообщение об ошибке "не удалось получить монопольную блокировку" в базе данных, что означает, что некоторые соединения все еще активны.

Как я могу уничтожить все соединения с базой данных, чтобы переименовать ее?

sql-server   sql-server-2005    

1858   19   08:28, 11th August, 2020


Есть ли какой-либо нетекстовый интерфейс для MySQL?

У меня есть запрос MySQL, который возвращает результат с одним столбцом целых чисел. Есть ли способ получить MySQL C API, чтобы передать это как фактически целые числа, а не как текст ASCII? Если на то пошло, есть ли способ заставить MySQL делать /any/ из API вещей, кроме ASCII текста. Я думаю, что это сэкономит немного времени в sprintf/sscanf или что-то еще используется, а также в пропускной способности.

mysql   api    

411   1   00:04, 8th August, 2020


Как заставить PHP и MySQL работать на IIS 7.0?

Хорошо, я искал по всему интернету хорошее решение, чтобы заставить PHP и MySQL работать над IIS7.0. Это почти невозможно, я столько раз пробовал это сделать, но все было напрасно. Пожалуйста, помогите, связав некоторые большие учебники step-by-step с добавлением PHP и MySQL на IIS7.0 с нуля. PHP и MySQL необходимы для установки любого CMS.

php   mysql   iis-7    

540   7   04:30, 28th August, 2020


Почему sqlite3-ruby-1.2.2 не работает на OS X?

Я бегу

  • OS X 10.5,
  • Ruby 1.8.6,
  • Rails 2.1,
  • sqlite3-ruby 1.2.2

и я получаю следующую ошибку при попытке сгрести db:migrate на приложение, которое работает найти подключен к MySQL.

грабли прервана! нет такого файла для загрузки -- sqlite3 / database

ruby-on-rails   ruby   sqlite    

418   2   05:39, 28th August, 2020


Почему сервер Sql 2005 планы обслуживания использовать ту базу данных для инструкции DBCC CHECKDB будут?

Это проблема, которую я видел у других людей, кроме меня, и я не нашел хорошего объяснения.

Допустим, у вас есть план обслуживания с задачей проверить базу данных, что-то вроде этого:

USE [MyDb]
GO
DBCC CHECKDB with no_infomsgs, all_errormsgs

Если вы посмотрите в свои журналы после выполнения задачи, вы можете увидеть что-то вроде этого:

08/15/2008 06:00:22,spid55,Unknown,DBCC CHECKDB (mssqlsystemresource) executed by NT AUTHORITY\SYSTEM found 0 errors and repaired 0 errors. Elapsed time: 0 hours 0 minutes 0 seconds.
08/15/2008 06:00:21,spid55,Unknown,DBCC CHECKDB (master) executed by NT AUTHORITY\SYSTEM found 0 errors and repaired 0 errors. Elapsed time: 0 hours 0 minutes 0 seconds.

Вместо того, чтобы проверить MyDb, он проверил Мастер и msssqlsystemresource.

Почему?

Мой обходной путь-создать задание агента сервера Sql с этим:

dbcc checkdb ('MyDb') with no_infomsgs, all_errormsgs;

Это всегда прекрасно работает.

08/15/2008 04:26:04,spid54,Unknown,DBCC CHECKDB (MyDb) WITH all_errormsgs<c/> no_infomsgs executed by NT AUTHORITY\SYSTEM found 0 errors and repaired 0 errors. Elapsed time: 0 hours 26 minutes 3 seconds.

sql-server   sql-server-2005    

394   3   00:31, 16th August, 2020


Есть ли у кого-нибудь успехи в модульном тестировании SQL хранимых процедур?

Мы обнаружили, что модульные тесты, которые мы написали для нашего кода C#/C++, действительно окупились. Но у нас все еще есть тысячи линий бизнес-логики в хранимых процедурах, которые действительно тестируются в гневе, когда наш продукт развертывается для большого числа пользователей.

Хуже всего то, что некоторые из этих хранимых процедур оказываются очень длинными из-за снижения производительности при передаче временных таблиц между SPs. Это помешало нам провести рефакторинг для упрощения кода.

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

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

Вторая часть моих вопросов заключается в том, будет ли модульное тестирование проще/легче с linq?

Я подумал, что вместо того, чтобы создавать таблицы тестовых данных, вы можете просто создать коллекцию тестовых объектов и протестировать свой код linq в ситуации “linq to objects”? (Я совершенно новичок в linq, так что не знаю, сработает ли это вообще)

sql   unit-testing   linq-to-sql    

507   16   05:49, 18th August, 2020


Как вы преобразуете число, полученное от datepart, в название дня?

Есть ли быстрый однострочный вызов datepart в Sql Server и получить обратно название дня вместо просто номера?

select datepart(dw, getdate());

Это вернет 1-7, а в воскресенье будет 1. Я бы хотел 'Sunday' вместо 1.

sql-server   datepart    

457   4   20:00, 28th August, 2020


Нет trace информации при обработке Куба в SSAS

Когда я обрабатываю куб в Visual Studio 2005, я получаю следующее сообщение:

Процесс удался. Trace информация его все еще переводят. Если вы это сделаете не хочу ждать всего этого информация, чтобы прибыть пресс-стоп.

и никакая информация trace не отображается. Куб обрабатывается OK им немного раздражает. Есть идеи? Я получаю доступ к кубам через веб-сервер.

sql-server   visual-studio-2005   ssas   trace   olap    

552   3   08:09, 11th August, 2020


Укажите номер порта в Emacs sql-mysql

Я использовал интерактивный режим Emacs sql для разговора с сервером MySQL db и получил удовольствие от этого. Разработчик установил другую БД на новый номер порта, не являющийся стандартным, но я не знаю, как получить к нему доступ с помощью sql-mysql.

Как указать номер порта при попытке подключения к базе данных?

Было бы еще лучше, если Emacs может запросить у меня номер порта и просто использовать значение по умолчанию, если я не указываю. Есть ли на это шансы?

sql   mysql   emacs    

416   3   10:15, 8th August, 2020


Построение системы аудита; MS Access frontend на сервере SQL backend

Поэтому в основном я создаю приложение для своей компании, и оно NEEDS должно быть построено с использованием MS Access, и оно должно быть построено на сервере SQL.

Я составил большинство планов, но мне трудно понять, как справиться с системой аудита.

Поскольку он используется только внутри, и вы даже не сможете коснуться БД снаружи здания, мы не используем систему входа в систему, поскольку программа будет использоваться только после того, как пользователь уже вошел в нашу внутреннюю сеть через Active Directory. Зная это, мы используем систему для автоматического определения имени пользователя Active Directory и их разрешений в одной из таблиц DB, решая, что они могут или не могут делать.

Таким образом, фактическая таблица аудита будет иметь 3 столбца (этот дизайн может измениться, но для этого вопроса это не имеет значения); кто (пользователь Active Directory), когда (время addition/deletion/edit), что (что было изменено)

Мой вопрос в том, как я должен справиться с этим. В идеале я знаю, что должен использовать триггер, чтобы база данных не обновлялась без регистрации аудита, однако я не знаю, как я мог бы захватить пользователя Active Directory таким образом. Альтернативой было бы закодировать его непосредственно в источнике доступа, чтобы всякий раз, когда что-то меняется, я запускал оператор INSERT. Очевидно, что это неправильно, потому что если что-то происходит с доступом или база данных затронута чем-то другим, то она не будет регистрировать аудит.

Любые советы, примеры или статьи, которые могут мне помочь, будут очень признательны!

sql   sql-server   ms-access   triggers    

535   11   20:35, 25th August, 2020


PHP + MYSQLI: привязка переменных параметров / результатов к подготовленным операторам

В проекте, который я собираюсь завершить, я написал и реализовал решение объектно-реляционного сопоставления для PHP. Прежде чем сомневающиеся и мечтатели воскликнут: "как же так?", расслабьтесь - Я не нашел способа сделать работу поздней статической привязки - я просто работаю над этим наилучшим образом,который я могу сделать.

В любом случае, в настоящее время я не использую подготовленные операторы для запросов, потому что я не мог придумать способ передать переменное количество аргументов в методы bind_params() или bind_result() .

Почему мне нужно поддерживать переменное количество аргументов, спросите вы? Потому что суперкласс моих моделей (подумайте о моем решении как о взломанном PHP ActiveRecord wannabe) - это то, где определяется запрос, и поэтому метод find(), например, не знает, сколько параметров ему нужно будет связать.

Теперь я уже думал о создании списка аргументов и передаче строки в eval(), но мне не очень нравится это решение-я бы предпочел просто реализовать свои собственные проверки безопасности и передать операторы.

Есть ли у кого-нибудь предложения (или истории успеха) о том, как это сделать? Если вы можете помочь мне решить эту первую проблему, возможно, мы сможем решить привязку результирующего набора (что-то, что я подозреваю, будет сложнее или, по крайней мере, более ресурсоемким, если он включает в себя первоначальный запрос для определения структуры таблицы).

php   mysql   orm   mysqli    

526   4   02:34, 15th August, 2020


Индекс Базы Данных Без Учета Регистра?

У меня есть запрос, в котором я ищу по строке:

SELECT county FROM city WHERE UPPER(name) = 'SAN FRANCISCO';

Теперь это работает нормально, но масштабируется не очень хорошо, и мне нужно его оптимизировать. Я нашел вариант создания сгенерированного представления или что-то в этом роде, но я надеялся на более простое решение с использованием индекса.

Мы используем DB2 , и я действительно хочу использовать выражение в индексе, но эта опция, кажется, доступна только на z/OS,, однако мы запускаем Linux. Я все равно попробовал индекс выражения:

CREATE INDEX city_upper_name_idx
ON city UPPER(name) ALLOW REVERSE SCANS;

Но, конечно, он давится на UPPER(имя).

Есть ли другой способ создать индекс или что-то подобное таким образом, чтобы мне не нужно было перестраивать существующие запросы для использования нового сгенерированного представления, изменять существующие столбцы или любые другие подобные навязчивые изменения?

EDIT: я готов выслушать решения для других баз данных... он может перейти на DB2...

sql   database   oracle   indexing   db2    

702   6   11:57, 25th August, 2020


Каков хороший способ денормализации базы данных mysql?

У меня есть большая база данных нормализованных данных заказа, которые становятся очень медленными для запроса отчетов. Многие из запросов, которые я использую в отчетах, объединяют пять или шесть таблиц и должны исследовать десятки или сотни тысяч строк.

Есть много запросов, и большинство из них были максимально оптимизированы, чтобы уменьшить нагрузку на сервер и увеличить скорость. Я думаю, что пришло время начать хранить копию данных в денормализованном формате.

Есть идеи по поводу подхода? Должен ли я начать с пары моих худших запросов и пойти оттуда?

mysql   database   denormalization    

438   8   00:41, 12th August, 2020


Узнайте полный размер базы данных сервера SQL

Мне нужно знать, сколько места занимают все базы данных внутри SQL Server 2000. Я провел некоторые исследования, но не смог найти ни одного сценария, чтобы помочь мне.

sql-server    

351   3   22:37, 4th August, 2020


Репликация базы данных. 2 сервера, главная база данных и 2 - й доступен только для чтения

Допустим, у вас есть 2 сервера баз данных, одна база данных-это база данных 'master', где выполняются все операции записи, она обрабатывается как база данных 'real/original'. База данных другого сервера должна быть зеркальной копией главной базы данных (ведомого?), который будет использоваться только для операций чтения для определенной части приложения.

Как вы собираетесь настроить подчиненную базу данных, которая отражает данные в главной базе данных? Насколько я понимаю, база данных slave/readonly должна использовать файл журнала транзакций master db для правильного отражения данных?
Какие варианты у меня есть с точки зрения того, как часто ведомая база данных отражает данные? (в реальном времени / каждые x минут?).

sql-server   replication    

361   5   06:20, 27th August, 2020


Как вы держите две взаимосвязанные, но отдельные системы в синхронизации друг с другом?

Мой нынешний проект развития имеет два аспекта. Во-первых, существует общедоступный веб-сайт, на котором внешние пользователи могут представлять и обновлять информацию для различных целей. Эта информация затем сохраняется на локальном сервере SQL на объекте colo.

Второй аспект - это внутреннее приложение, которое сотрудники используют для управления теми же записями (концептуально)и предоставления обновлений статуса, утверждений и т. д. Это приложение размещается в корпоративном брандмауэре с собственной локальной базой данных сервера SQL.

Эти две сети соединены аппаратным решением VPN, которое является приличным,но явно не самым быстрым в мире.

Эти две базы данных похожи и имеют много общих таблиц, но они не являются 100% одинаковыми. Многие таблицы с обеих сторон очень специфичны для внутреннего или внешнего применения.

Таким образом, возникает вопрос: когда пользователь обновляет свою информацию или представляет запись на общедоступном веб-сайте, Как вы передаете эти данные в базу данных внутреннего приложения, чтобы она могла управляться внутренним персоналом? И наоборот... как ВЫ продвигаете обновления, сделанные сотрудниками, обратно на веб-сайт?

Стоит отметить, что чем больше "real time" таких обновлений происходит, тем лучше. Не то чтобы это было мгновенно, просто достаточно быстро.

До сих пор я думал об использовании следующих типов подходов:

  1. Двунаправленная репликация
  2. Веб-сервис взаимодействует с обеих сторон с кодом для синхронизации изменений по мере их внесения (в режиме реального времени).
  3. Веб-службы взаимодействуют с обеих сторон с кодом для асинхронной синхронизации изменений (с помощью механизма массового обслуживания).

Какой-нибудь совет? Кто-нибудь сталкивался с этой проблемой раньше? Вы придумали решение, которое хорошо сработало для вас?

sql-server   database   synchronization   distributed    

507   5   20:16, 18th August, 2020


Вставляйте обновление хранимой процедуре на сервере SQL

Я написал сохраненный proc, который будет выполнять обновление, если запись существует, в противном случае он будет выполнять вставку. Это выглядит примерно так:

update myTable set Col1=@col1, Col2=@col2 where ID=@ID
if @@rowcount = 0
insert into myTable (Col1, Col2) values (@col1, @col2)

Моя логика написания его таким образом заключается в том, что обновление будет выполнять неявный выбор с помощью предложения where, и если это возвращает 0, то вставка будет иметь место.

Альтернативой этому способу было бы сделать выбор, а затем на основе количества возвращенных строк либо выполнить обновление, либо вставить. Это я посчитал неэффективным, потому что если вы собираетесь сделать обновление, это вызовет 2 выбора (первый явный вызов select и второй неявный в where обновления). Если бы proc должен был сделать вставку, то не было бы никакой разницы в эффективности.

Разве моя логика здесь верна? Это то, как вы бы объединили вставку и обновление в сохраненный proc?

sql   sql-server   stored-procedures   upsert    

464   9   19:44, 11th August, 2020


mysqli или PDO - каковы плюсы и минусы?

В нашем случае мы разделены между использованием mysqli и PDO для таких вещей, как подготовленные заявления и поддержка транзакций. Некоторые проекты используют одно, некоторые другое. Существует очень мало реальной вероятности того, что мы когда-нибудь переедем в другой RDBMS.

Я предпочитаю PDO только по той причине, что он допускает именованные параметры для подготовленных операторов, а насколько мне известно, mysqli этого не делает.

Есть ли еще какие-то плюсы и минусы в выборе одного из них в качестве стандарта, когда мы объединяем наши проекты, чтобы использовать только один подход?

php   mysql   pdo   mysqli   database-abstraction    

882   13   04:14, 25th August, 2020


Триггеры базы данных

В прошлом я никогда не был поклонником использования триггеров в таблицах базы данных. Для меня они всегда представляли собой некий "magic", который должен был произойти на стороне базы данных, далеко - далеко от контроля моего кода приложения. Я также хотел ограничить объем работы, которую должен был выполнять DB, поскольку это обычно общий ресурс, и я всегда предполагал, что триггеры могут быть дорогостоящими в сценариях с высокой нагрузкой.

Тем не менее, я нашел несколько примеров, когда триггеры имели смысл использовать (по крайней мере, на мой взгляд, они имели смысл). Однако недавно я оказался в ситуации, когда мне иногда может понадобиться "bypass" спусковой крючок. Я чувствовал себя очень виноватым из-за необходимости искать способы сделать это, и я все еще думаю, что лучший дизайн базы данных облегчил бы необходимость этого обхода. К сожалению, этот DB используется несколькими приложениями, некоторые из которых поддерживаются очень несговорчивой командой разработчиков, которая кричала бы об изменениях схемы, поэтому я застрял.

Что там за общий консесус насчет триггеров? Любишь их? Ненавидеть их? Думаете, они служат какой-то цели в некоторых сценариях? Считаете ли вы, что необходимость обойти триггер означает, что вы "делаете это неправильно"?

sql-server   database-design   triggers    

584   12   03:36, 23rd August, 2020


System.Data.SqlClient.SqlException: не удалось создать пользовательский экземпляр сервера SQL

System.Data.SqlClient.SqlException: Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.

Кто - нибудь когда-нибудь получал эту ошибку и/или имел представление о ее причине и/или решении?

Эта ссылка может содержать соответствующую информацию.

Обновление

Строка подключения- =.\SQLEXPRESS;AttachDbFilename=C:\temp\HelloWorldTest.mdf;Integrated Security=True

Предложенный вариант User Instance=false сработал.

.net   sql-server   ado.net    

561   5   08:39, 2nd August, 2020


LINQ-to-SQL против хранимых процедур?

Я взглянул на сообщение "Beginner's Guide to LINQ" здесь на StackOverflow ( руководство для начинающих к LINQ ), но у меня был следующий вопрос:

Мы собираемся развернуть новый проект, где почти все наши операции с базой данных будут довольно простыми извлечениями данных (есть еще один сегмент проекта, который уже записывает данные). Большинство наших других проектов до этого момента используют хранимые процедуры для таких вещей. Однако я хотел бы использовать LINQ-to-SQL, если это имеет больше смысла.

Итак, вопрос заключается в следующем: Для простого извлечения данных, какой подход лучше, LINQ-to-SQL или сохраненные procs? Какие-то конкретные " за " или "против"?

Спасибо.

linq   linq-to-sql   stored-procedures    

579   23   20:18, 12th August, 2020


Запланированные отчеты службы SSRS не работают

Мои запланированные отчеты на сервере SQL не будут выполняться. Я проверил журналы и нашел работу, которая была неудачной. Сообщение об ошибке в журнале было:

"Выполнить как вход" не удалось для запрошенного входа " NT AUTHORITY\NETWORK SERVICE'. Шаг не удался.

Я использую аутентификацию SQL для отчета, поэтому не должно быть проблем с разрешениями на данные. Запланированные отчеты на сервере выполняться не будут.

sql-server   reporting-services   ssrs-2008    

461   5   04:11, 18th August, 2020


Как избежать использования курсоров в Sybase (T-SQL)?

Представьте себе сцену, вы обновляете какой-то устаревший код Sybase и натыкаетесь на курсор. Хранимая процедура создает результирующий набор в таблице #temporary, которая полностью готова к возвращению, за исключением того, что один из столбцов не очень удобочитаем, это буквенно-цифровой код.

Что нам нужно сделать, так это выяснить возможные различные значения этого кода, вызвать другую хранимую процедуру для перекрестной ссылки на эти дискретные значения, а затем обновить результирующий набор новыми расшифрованными значениями:

declare c_lookup_codes for
select distinct lookup_code
from #workinprogress

while(1=1)
begin
    fetch c_lookup_codes into @lookup_code

    if @@sqlstatus<>0
    begin
        break
    end

    exec proc_code_xref @lookup_code @xref_code OUTPUT

    update #workinprogress
    set xref = @xref_code
    where lookup_code = @lookup_code
end

Итак, хотя это может вызвать у некоторых людей учащенное сердцебиение, это действительно работает. Мой вопрос в том, как лучше всего избежать такого рода вещей?

_NB: для целей этого примера вы также можете представить, что результирующий набор находится в области 500k строк и что существует 100 различных значений look_up_code и, наконец, что невозможно иметь таблицу со значениями внешней ссылки, так как логика в proc_code_xref слишком arcane._

tsql   sybase   cursors    

546   3   14:12, 4th August, 2020


Определение Проблем Производительности Сервера SQL

У нас есть спорадические, случайные тайм-ауты запросов в нашем кластере SQL Server 2005. У меня есть несколько приложений, которые используют его, поэтому я помогаю в расследовании. При просмотре времени % CPU в обычном Ol ' Perfmon вы, безусловно, можете увидеть, как он привязывается. Однако монитор активности SQL дает только совокупное время CPU и IO, используемое процессом, а не то, что он использует прямо сейчас или в течение определенного периода времени. Возможно, я мог бы использовать профилировщик и запустить trace, но этот кластер очень сильно используется, и я боюсь, что буду искать иголку в стоге сена. Я что, лаю не на то дерево?

Есть ли у кого-нибудь хорошие методы для отслеживания дорогостоящих запросов/процессов в этой среде?

sql-server   performance   sql-server-2005    

397   7   13:51, 4th August, 2020


Проблемы с DB после публикации с помощью мастера публикации базы данных из MSFT

Я работаю на довольно большом количестве сайтов DotNetNuke, и иногда (я еще не выяснил общий фактор), когда я использую мастер публикации базы данных от Microsoft для создания сценариев для сайта, который я создал на своем сервере разработки, после запуска сценариев на хосте (обычно GoDaddy.com) и загрузки файлов сайта, я получаю ошибку... Я 99.9% уверен, что это не связано с файлом, поэтому не уверен, с чего начать в DB. К сожалению, с DotNetNuke вы не получаете YSOD, но общую ошибку, без реального способа найти фактическое исключение, которое произошло.

Мне просто любопытно, если у кого-то были подобные проблемы deployment с использованием мастера публикации базы данных, и если да, то как они их преодолели? Я владею набором инструментов RedGate, но некоторые хосты, такие как GoDaddy, не позволяют вам напрямую подключаться к своим серверам...

sql   deployment   dotnetnuke    

456   7   23:43, 2nd August, 2020


[ADO.NET error]: в базе данных 'master' отказано в разрешении создать базу данных. Попытка прикрепить базу данных с автоматическим именем для файла HelloWorld.mdf не удалась

Создать базу данных разрешение запрещено в базе данных 'master'. Попытка прикрепить базу данных с автоматическим именем для файла C:\Documents и Settings\..\App_Data\HelloWorld.mdf потерпели неудачу. База данных с таким же именем существует, или указанный файл не может быть открыт, или он находится на UNC share.

Я нашел эти ссылки:

sql-server   database   ado.net   sql-server-express    

726   7   21:39, 10th August, 2020


Как отобразить статистику запросов к базе данных на сайте Wordpress?

Я заметил, что некоторые блоги Wordpress имеют статистику запросов, представленную в их нижнем колонтитуле, которая просто указывает количество запросов и общее время, необходимое для их обработки для конкретной страницы, читая что-то вроде:

23 вопроса. 0.448 секунд

Мне было интересно, как это делается. Может быть, это связано с использованием конкретного плагина Wordpress или, возможно, с использованием какой-то конкретной функции php в коде страницы?

mysql   performance   wordpress   layout   statistics    

504   3   03:43, 28th August, 2020


Привязка параметров: что происходит под капотом?

.

NET, Java и другие высокоуровневые базы данных API на различных языках часто предоставляют методы, известные как подготовленные операторы и привязка параметров, в отличие от отправки простых текстовых команд на сервер базы данных. Я хотел бы знать, что происходит, когда вы выполняете такой оператор:

SqlCommand cmd = new SqlCommand("GetMemberByID");
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@ID", memberID);
para.DbType = DbType.Integer;
cmd.Parameters.Add(param);

Я знаю, что это лучшая практика. SQL инъекционные атаки сводятся к минимуму таким образом. Но что именно происходит под капотом, когда вы выполняете эти заявления? Является ли конечный результат все еще безопасной строкой SQL? Если нет, то каков конечный результат? И достаточно ли этого для предотвращения SQL инъекционных атак?

c#   .net   sql   database   api    

401   3   20:44, 1st August, 2020


Access 2000 подключение к серверу SQL Server 2005

Компания, в которой я работаю, имеет старое приложение Access 2000, которое использовало серверную часть SQL Server 2000. Нам было поручено переместить серверную часть в базу данных SQL Server 2005 на новом сервере. К сожалению, приложение не работает правильно при попытке сделать какие-либо вставки или обновления. Мое исследование обнаружило много сообщений на форуме, что Access 2000 - > SQL 2005 не поддерживается Microsoft, но я не могу найти документацию Microsoft для проверки этого.

Может ли кто-нибудь связать меня с какой-то официальной документацией, или кто-нибудь использовал эту настройку и может подтвердить, что это должно работать, и наши проблемы лежат где-то еще?

Не уверен, что это имеет значение, но приложение ADP скомпилировано в ADE.

sql-server   ms-access   sql-server-2005   ms-access-2000    

432   7   19:50, 5th August, 2020


Каковы плюсы и минусы сохранения SQL в сохраненных Procs по сравнению с кодом

Каковы преимущества / недостатки сохранения SQL в исходном коде C# или в сохраненных Procs? Я обсуждал это с другом в рамках проекта с открытым исходным кодом, над которым мы работаем (C# ASP.NET Forum). На данный момент большая часть доступа к базе данных осуществляется путем построения SQL inline в C# и вызова SQL Server DB. Поэтому я пытаюсь установить, что для этого конкретного проекта было бы лучше всего.

Пока что у меня есть:

Преимущества Для в код:

  • Проще в обслуживании - не нужно запускать скрипт SQL для обновления запросов
  • Проще портировать на другой DB-нет procs для порта

Преимущества хранимых процедур:

  • Спектакль
  • Безопасность

c#   sql   sql-server   stored-procedures    

672   25   21:06, 1st October, 2020


Оптимизация экспорта PDF огромных отчетов в Sql Reporting Services 2005

Во-первых, я понимаю, что это ужасная идея-запускать очень большие / длинные отчеты. Я знаю, что у Microsoft есть эмпирическое правило, гласящее, что отчет SSRS не должен занимать более 30 секунд для выполнения. Однако иногда гигантские отчеты являются предпочтительным злом из-за внешних сил, таких как соблюдение государственных законов.

На моем рабочем месте у нас есть приложение asp.net (2.0), которое мы перенесли из Crystal Reports в SSRS. Из-за большой базы пользователей и сложных требований к отчетности UI у нас есть набор экранов, который принимает введенные пользователем параметры и создает графики для запуска в течение ночи. Поскольку приложение поддерживает несколько платформ отчетов, мы не используем средства планирования / моментального снимка SSRS. Все отчеты в системе генерируются запланированным консольным приложением, которое принимает введенные пользователем параметры и генерирует отчеты с соответствующими решениями для создания отчетов, с помощью которых они были созданы. В случае с отчетами SSRS консольное приложение создает отчеты SSRS и экспортирует их как PDFs через веб-службу SSRS API.

До сих пор с SSRS было гораздо проще иметь дело, чем с Crystal, за исключением определенного отчета на 25 000 страниц, который мы недавно преобразовали из crystal reports в SSRS. Сервер SSRS - это 64-битный сервер 2003 года с 32 гигабайтами ram под управлением SSRS 2005. Все наши небольшие отчеты работают фантастически, но у нас есть проблемы с нашими большими отчетами, такими как этот. К сожалению, мы не можем сгенерировать вышеупомянутый отчет через веб-сервис API. Следующая ошибка возникает примерно через 30-35 минуты после generation/export:

Сообщение об исключении: базовое соединение было закрыто: произошла непредвиденная ошибка при получении.

Вызов веб-службы-это то, что, я уверен, вы все уже видели раньше:

data = rs.Render(this.ReportPath, this.ExportFormat, null, deviceInfo,
   selectedParameters, null, null, out encoding, out mimeType, out usedParameters, 
   out warnings, out streamIds);

Странно то, что этот отчет будет run/render/export, если отчет запускается непосредственно на сервере отчетов с помощью диспетчера отчетов. Процесс, который создает данные для отчета, выполняется в течение примерно 5 минут. Отчет отображается в собственном формате SSRS в браузере / средстве просмотра примерно через 12 минут. Экспорт в pdf через браузер / средство просмотра в диспетчере отчетов занимает дополнительно 55 минут. Это работает надежно, и он производит колоссальный 1.03gb pdf.

Вот некоторые из наиболее очевидных вещей, которые я пытался сделать, чтобы отчет работал через веб-службу API:

  • установите HttpRuntime ExecutionTimeout значение до 3 часов на отчет сервер
  • отключен http сохранить активность на сервере отчетов
  • увеличено время ожидания скрипта на сервере отчетов
  • установите для отчета значение никогда не терять время ожидания на сервере
  • установите тайм-аут отчета на несколько часов при вызове клиента

Из тех настроек, которые я пробовал, мне довольно удобно говорить, что любые проблемы с таймаутом были устранены.

Основываясь на моем исследовании сообщения об ошибке, я считаю, что веб-служба API не отправляет фрагментированные ответы по умолчанию. Это означает, что он пытается отправить все 1.3gb по проводу в одном ответе. В какой-то момент IIS бросает полотенце. К сожалению, API абстрагирует конфигурацию веб-службы, поэтому я не могу найти способ включить блокировку ответов.

  1. Кто-нибудь знает, как уменьшить/оптимизировать фазу экспорта PDF и / или размер PDF без снижения общего количества страниц?
  2. Есть ли способ включить блокировку ответа для SSRS?
  3. Есть ли у кого-нибудь еще какие-то другие теории относительно того, почему это работает на сервере, но не через API?

EDIT: прочитав сообщение kcrumley, я начал смотреть на средний размер страницы, принимая размер файла / количество страниц. Интересно, что на небольших отчетах математика работает так, что каждая страница составляет примерно 5K. интересно, что когда отчет становится больше, это "average" увеличивается. Отчет на 8000 страниц, например, усредняется по 40K/page. очень странно. Я также добавлю, что количество записей на странице устанавливается за исключением последней страницы в каждой группе, поэтому это не тот случай, когда некоторые страницы имеют больше записей, чем другие.

sql-server   reporting-services    

626   3   08:40, 10th August, 2020


SQL Server 2008 vs 2005 Linq интеграция

Linq - SQL или Entity framework прекрасно интегрируются с SQL Server 2005.

Спецификация SQL Server 2008 обещает еще лучшую интеграцию, но я не вижу ее.

Каковы некоторые примеры того, что вы можете сделать Linq-wise при разговоре с сервером 2008, что вы не можете при разговоре с SQL Server 2005?

linq   sql-server-2005   sql-server-2008    

388   5   10:36, 22nd August, 2020


SQL С Предохранительной Сеткой

В моей фирме есть талантливый и умный оперативный персонал, который очень много работает. Я хотел бы дать им инструмент SQL-execution, который поможет им избежать распространенных, легко обнаруживаемых ошибок SQL, которые легко сделать, когда они спешат. Может ли кто-нибудь предложить такой инструмент? Далее следуют подробности.

Часть компетенции оперативной группы заключается в написании очень сложных специальных запросов SQL. Неудивительно, что операторы иногда делают ошибки в запросах, которые они пишут, потому что они очень заняты.

К счастью, их запросы все SELECTs не изменяют данные SQL, и они все равно работают на копии базы данных. Тем не менее, мы хотели бы предотвратить ошибки в SQL, которые они запускают. Например, иногда ошибки приводят к длительным запросам, которые замедляют работу дублирующей системы, которую они используют, и причиняют неудобства другим, пока мы не найдем преступный запрос и не убьем его. Хуже того, иногда ошибки приводят к явно правильным ответам, которые мы не улавливаем до тех пор, пока много позже, с последующим смущением.

Наши разработчики также делают ошибки в сложном коде, который они пишут, но у них есть Eclipse и различные плагины (такие как FindBugs), которые ловят ошибки при вводе. Я бы хотел дать операторам нечто подобное - в идеале это было бы видно

SELECT U.NAME, C.NAME FROM USER U, COMPANY C WHERE U.NAME = 'ibell';

и перед тем, как вы его исполните, он скажет: "Эй, вы поняли, что это декартово произведение? Вы уверены, что хотите это сделать?"Это не должно быть очень умно - найти явно отсутствующие условия соединения и подобные очевидные ошибки было бы прекрасно.

Похоже, что TOAD должен сделать это, но я не могу найти ничего о такой функции. Существуют ли другие инструменты, такие как TOAD, которые могут обеспечить такое полуинтеллектуальное исправление ошибок?

Обновление: я забыл упомянуть, что мы используем MySQL.

sql   mysql    

465   7   10:05, 10th August, 2020


SSRS-удаление пробной версии VS Business Intelligence

Я хочу знать, как полностью удалить MSSQL 2005 .

Я уже некоторое время использую пробную версию SQL Server Reporting Services. Моя компания, наконец, купила программное обеспечение у онлайн-дистрибьютора, и для поддержки Oracle нам нужно было обновить до MSSQL 2005 SP2. Во всяком случае, версия программного обеспечения "full" не будет установлена, поскольку она уже была установлена (похоже, установщик не распознает, что была установлена пробная версия). Поэтому я попытался удалить MSSQL 2005, и все, что связано (включая visual studio), я не могу его переустановить. Ошибка-это неопределенное сообщение об ошибке, и когда я нажимаю ссылку, чтобы получить дополнительную информацию, обычная ошибка "no information about this error was found".

Установка Microsoft SQL Server 2005

Произошел неожиданный сбой во время мастер установки. Вы можете просмотреть журналы установки и / или нажмите кнопку справка кнопка для получения дополнительной информации.

Для получения справки нажмите кнопку: http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.06&EvtSrc=setup.rll&EvtID=50000&EvtType=packageengine%5cinstallpackageaction.cpp%40InstallToolsAction.11%40sqls%3a%3aInstallPackageAction%3a%3aperform%400x643

BUTTONS:

OK

sql-server   visual-studio   reporting-services    

473   2   14:36, 21st August, 2020


SSRS-процесс умирает/переходит в спящий режим после неиспользования

Еще один вопрос SSRS здесь:
У нас есть разработка, QA, Prod-резервное копирование и производственный набор серверов SSRS.
На наше производство и прод-резервное копирование, SSRS переходит в спящий режим если не используется в течение определенного периода времени.

Это не происходит на нашем сервере разработки или QA.
В корпоративной среде, в которой мы находимся, у нас нет физического (или даже удаленного входа) доступа к этим машинам, и нам приходится работать с командой удаленных администраторов для настройки нашего приложения SSRS.

Мы попросили, чтобы они исправили, если это возможно, эту проблему. До сих пор они не смогли определить проблему, и я хотел бы знать, знает ли кто-нибудь из моих коллег ответ на этот вопрос. Спасибо.

sql-server   reporting-services   ssrs-2008    

501   3   13:02, 7th August, 2020


Аудит данных в NHibernate и SqlServer

Я использую NHibernate в проекте, и мне нужно сделать аудит данных. Я нашел эту статью на codeproject, в которой обсуждается интерфейс IInterceptor.

Каков ваш предпочтительный способ аудита данных? Вы используете триггеры базы данных? Вы используете что-то похожее на то, что описано в статье?

sql-server   nhibernate   audit    

531   6   05:10, 9th August, 2020


Java+Tomcat, умирающее соединение с базой данных?

У меня есть установка экземпляра tomcat, но соединение с базой данных, которое я настроил в context.xml , продолжает умирать после периодов бездействия.

Когда я проверяю журналы я получаю следующую ошибку:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Последний пакет успешно полученный с сервера составил 68051 сек тому назад. Последний пакет успешно отправлено на сервер был 68051 секунд назад, что больше, чем настроенное значение сервера 'wait_timeout'. Вы должны рассмотреть возможность истечения срока действия и / или тестирования срок действия соединения перед использованием в вашем приложении, увеличивая сервер настроил значения для таймаутов клиента или с помощью соединителя / J свойство соединения 'autoReconnect=true', чтобы избежать этой проблемы.

Вот конфигурация в context.xml:

<Resource name="dataSourceName" 
        auth="Container" 
        type="javax.sql.DataSource"
        maxActive="100" 
        maxIdle="30" 
        maxWait="10000" 
        username="username" 
        password="********"
        removeAbandoned = "true"
        logAbandoned = "true"
        driverClassName="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://127.0.0.1:3306/databasename?autoReconnect=true&amp;useEncoding=true&amp;characterEncoding=UTF-8"  />

Я использую autoReconnect=true , как говорит ошибка, но соединение продолжает умирать. Я никогда раньше не видел, как это происходит.

Я также проверил, что все подключения к базе данных закрываются должным образом.

java   mysql   database   tomcat    

546   4   14:32, 29th August, 2020


LINQ to SQL отображение от денег к двойнику

Я впервые работаю с LINQ и хотел бы, чтобы сопоставление работало, когда у меня есть денежный тип в SQL, но мое свойство объекта домена имеет тип double. Как я могу выразить это в файле XML или в коде, чтобы сопоставление не вызывало обычного исключения "invalid cast"?

linq   linq-to-sql   orm    

478   3   15:09, 29th August, 2020


Изучение LINQ

Обзор

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

Я также надеюсь, что он окажется полезным ресурсом для других людей, желающих узнать о LINQ.

Что такое LINQ?

От MSDN :

Проект LINQ-это кодовое имя для a набор расширений для .NET Рамки, которые охватывают язык-интегрированный запрос, набор и операции преобразования. Он расширяет C# и Visual Basic с родным языком синтаксис для запросов и предоставляет класс библиотеки, чтобы воспользоваться этими преимуществами способности.

Это означает, что LINQ предоставляет стандартный способ запроса различных источников данных с использованием общего синтаксиса.

Какие ароматы LINQ существуют?

В настоящее время существует несколько различных поставщиков LINQ, предоставляемых корпорацией Майкрософт:

  • Linq к объектам , что позволяет выполнять запросы к любому объекту IEnumerable.
  • От Linq до SQL , что позволяет выполнять запросы к базе данных в объектно-ориентированном виде.
  • От Linq до XML , что позволяет запрашивать, загружать, проверять, сериализовывать и манипулировать документами XML.
  • Linq to Entities по предложению Андрея
  • Linq к набору данных

Есть довольно много других, многие из которых перечислены здесь .

Какие же это преимущества?

  • Стандартизированный способ запроса нескольких источников данных
  • Безопасность запросов во время компиляции
  • Оптимизированный способ выполнения операций на основе наборов для объектов в памяти
  • Возможность отладки запросов

Так что же мне делать с LINQ?

Chook предоставляет способ вывода CSV файлов
Джефф показывает, как удалить дубликаты из массива
Боб получает четкий упорядоченный список из datatable
Марксидад показывает, как сортировать массив
Дана получает помощь в реализации быстрой сортировки с помощью Linq

С чего начать?

Краткое содержание ссылок из вопроса GateKiller приведено ниже :
Скотт Гатри приводит вступление к Linq в своем блоге
Обзор LINQ на MSDN

ChrisAnnODell предлагает проверить

linq   linq-to-sql   linq-to-entities   linq-to-objects    

448   9   16:57, 9th August, 2020


Простой способ преобразования Crystal Reports в MS SQL Server Reporting Services

Есть ли способ легко конвертировать отчеты Crystal Reports в формат Reporting Services RDL? У нас есть довольно много отчетов, которые скоро будут нуждаться в преобразовании.

Я знаю о ручном процессе (который в основном восстанавливает все ваши отчеты с нуля в SSRS), но мои поиски указали на несколько возможностей с автоматическим преобразованием "acceleration" с несколькими консалтинговыми фирмами. (Как описано далее .... - ссылка сломана).

Есть ли у кого-нибудь из вас какой-либо действительный опыт или рекомендации по этому конкретному вопросу? Есть ли вокруг какие-то инструменты, о которых я не знаю?

sql-server   reporting-services   crystal-reports   migration    

631   9   11:34, 11th August, 2020


Разбор полезного адреса улицы, города, штата, Zip из строки

Проблема: у меня есть поле адреса из базы данных Access, которая была преобразована в Sql Server 2005. В этом поле есть все, что находится в одном поле. Мне нужно разобрать отдельные разделы адреса на соответствующие поля в нормализованной таблице. Мне нужно сделать это примерно для 4000 записей, и это должно быть повторяемо.

Предубеждения:

  1. Предположим, что адрес в US (на данный момент)

  2. предположим, что входная строка иногда будет содержать адресата (лицо, к которому обращаются) и/или второй адрес улицы (например, номер B)

  3. государства могут быть сокращены

  4. Код zip может быть стандартным 5-значным или zip+4

  5. в некоторых случаях есть опечатки

UPDATE: в ответ на поставленные вопросы, стандарты не были соблюдены повсеместно, мне нужно хранить индивидуальные значения, а не только геокод и ошибки означает опечатку (исправлено выше)

выборочные данные:

  • А. П. Кролл & Сын 2299 Льюис-Джорджтаун Hwy, Джорджтаун, DE 19947

  • 11522 Шони-Роуд, Гринвуд DE 19950

  • 144 Кингс-Хайвей, S.W. Дувр, DE 19901

  • Интегрированная Константа. Услуги 2 Penns Way Suite 405 New Castle, DE 19720

  • Humes Realty 33 Bridle Ridge Court, Льюис, DE 19958

  • Раскопки Николса 2742 Pulaski Hwy Newark, DE 19711

  • 2284 Брин Сион Роуд, Смирна, DE 19904

  • VEI Dover Crossroads, LLC 1500 Serpentine Road, Suite 100 Baltimore MD 21

  • 580 North Dupont Highway Dover, DE 19901

  • P.O. Вставка 778 Дувр, DE 19903

string   parsing   sql-server-2005   street-address    

597   24   17:53, 16th August, 2020


Выберите запрос по 2 таблицам, на разных серверах баз данных

Я пытаюсь создать отчет, запросив 2 базы данных (Sybase) в классическом ASP.

Я создал 2 строки подключения:


connA для databaseA
connB для databaseB

Обе базы данных находятся на одном сервере (не знаю, имеет ли это значение)


Запросы:

q1 = SELECT column1 INTO #temp FROM databaseA..table1 WHERE xyz="A"

q2 = SELECT columnA,columnB,...,columnZ FROM table2 a #temp b WHERE b.column1=a.columnB

с последующим:

response.Write(rstsql) <br>
set rstSQL = CreateObject("ADODB.Recordset")<br>
rstSQL.Open q1, connA<br>
rstSQL.Open q2, connB

Когда я пытаюсь открыть эту страницу в браузере, я получаю сообщение об ошибке:

Поставщик Microsoft OLE DB для ODBC драйверов ошибка '80040e37'

[DataDirect] [ODBC Sybase драйвер проводного протокола] [SQL сервер]#temp не найден. Укажите owner.objectname или используйте sp_help, чтобы проверить, существует ли объект (sp_help может выдавать много выходных данных).

Может ли кто-нибудь помочь мне понять, в чем проблема, и помочь мне ее решить?

Спасибо.

sql   asp-classic   vbscript   sybase    

387   3   13:33, 22nd August, 2020


Динамическая Алфавитная Навигация

Я использую ColdFusion , чтобы вернуть результирующий набор из базы данных SQL и превратить его в список.

Мне нужен какой-то способ создать алфавитную навигационную панель для этого списка. У меня есть библиотека ColdFusion и jQuery.

Я ищу, чтобы создать что-то вроде этого:

A | B | C | ...      
- A
- A
- B
- B
- B
- C
- D

Где нажатие на одну из букв опускает вас вниз по странице до первого элемента для этой буквы. Не все 26 букв алфавита обязательно используются.

javascript   jquery   sql   html   coldfusion    

535   4   17:51, 26th August, 2020


Восстановление резервной копии базы данных по сети

Как восстановить резервную копию базы данных с помощью SQL Server 2005 по сети? Я помню, что делал это раньше, но было что-то странное в том, как вы это делали.

sql-server   database   sql-server-2005   backup   restore    

601   10   21:58, 12th August, 2020


Как выбрать N-ю строку в таблице базы данных SQL?

Мне интересно изучить некоторые (в идеале) агностические способы выбора n-й строки из таблицы базы данных. Было бы также интересно посмотреть, как это может быть достигнуто с помощью собственных функциональных возможностей следующих баз данных:

  • SQL сервер
  • MySQL
  • PostgreSQL
  • SQLite
  • Oracle

В настоящее время я делаю что-то вроде следующего в SQL Server 2005, но мне было бы интересно увидеть другие более агностические подходы:

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000

Кредит за вышеизложенное SQL: веб- блог Фироза Ансари

Update: смотрите ответ Troels Arvin относительно стандарта SQL. Троэльс, у тебя есть какие-нибудь ссылки, которые мы можем привести?

mysql   sql   database   oracle   postgresql    

2919   25   03:04, 9th August, 2020


Как вы справляетесь с ошибками транспортного уровня в SqlConnection?

Время от времени в высокообъемном приложении .NET вы можете видеть это исключение при попытке выполнить запрос:

System.Data.SqlClient.SqlException: ошибка транспортного уровня имеет произошел при отправке запроса на сервер.

Согласно моим исследованиям, это то, что "just happens" и не так много можно сделать, чтобы предотвратить это. Это не происходит в результате неправильного запроса и, как правило, не может быть продублировано. Он просто появляется, возможно, один раз в несколько дней в занятой системе OLTP, когда соединение TCP с базой данных по какой-то причине портится.

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

У кого-нибудь есть альтернативные решения?

c#   sql-server   tsql   ado.net   sql-server-2000    

2071   11   15:36, 24th August, 2020


Как лучше всего проверить, существует ли файл из хранимой процедуры SQL Server 2005?

Мы использовали хранимую процедуру "undocumented" xp_fileexist в течение многих лет в SQL Server 2000 и не имели с ней никаких проблем. В 2005 году, похоже, они немного изменили поведение, чтобы всегда возвращать 0, если исполняющая учетная запись пользователя не является sysadmin. Он также возвращает ноль, если служба сервера SQL запущена под учетной записью LocalSystem, и вы пытаетесь проверить файл в сети.

Я бы хотел уйти от xp_fileexist. Есть ли у кого-нибудь лучший способ проверить наличие файла в сетевом расположении изнутри хранимой процедуры?

sql-server   sql-server-2005    

435   4   10:34, 23rd August, 2020


SQL максимальный размер строки сервера

Наткнулся на эту ошибку сегодня. Интересно, может ли кто-нибудь сказать мне, что это значит:

Невозможно отсортировать строку размером 9522, которая больше допустимого максимума 8094.

Это 8094 байта? Персонажи? Поля? Является ли это проблемой объединения нескольких таблиц, которые превышают некоторый предел?

sql-server    

440   6   12:00, 3rd August, 2020


Решения Для Корпоративной Отчетности

Какие варианты существуют в отрасли для корпоративной отчетности? В настоящее время я использую SSRS 2005, и знаю, что есть еще одна версия, выходящая с новым выпуском MSSQL.

Но, похоже,что это также может быть хорошим временем, чтобы исследовать рынок, чтобы увидеть, что еще там есть.

С чем вы столкнулись? Нравится ли вам это/не нравится? Почему?

Спасибо.

sql   reporting-services   reporting    

499   14   06:55, 11th August, 2020


Как восстановить начальное значение приращения личности на сервере SQL

Я хотел бы иметь хороший шаблон для этого в разработке. Как восстановить начальное значение приращения личности на сервере SQL?

sql-server   identity    

536   3   11:56, 5th August, 2020


SQL Сервер Полнотекстового Поиска

В настоящее время я работаю над приложением, в котором у нас есть база данных SQL-Server, и мне нужно получить полнотекстовый поиск, который позволяет нам искать имена людей.

В настоящее время пользователь может ввести в поле имя, которое ищет 3 разных varchar седла. Имя, Фамилия, Отчество

Так сказать, у меня есть 3 строки со следующей информацией.

1-Филлип-Джей-Фрай

2-Эми-NULL-Вонг

3-Лео-NULL-Вонг

Если пользователь вводит имя, например 'Fry', он возвращает строку 1. Однако, если они входят в Филлип Фрай, или фр, или Фил, они ничего не получают.. и я не понимаю, почему он это делает. Если они ищут Вонга, они получают строки 2 и 3, если они ищут Эми Вонг, они снова ничего не получают.

В настоящее время запрос использует CONTAINSTABLE, но я переключил его с FREETEXTTABLE, CONTAINS и FREETEXT без каких-либо заметных различий в результатах. Методы таблицы являются предпочтительными, поскольку они возвращают те же результаты, но с ранжированием.

Вот этот запрос.

....
@Name nvarchar(100),
....
--""s added to prevent crash if searching on more then one word.
DECLARE @SearchString varchar(100)
SET @SearchString = '"'+@Name+'"'
SELECT Per.Lastname, Per.Firstname, Per.MiddleName
FROM Person as Per
INNER JOIN CONTAINSTABLE(Person, (LastName, Firstname, MiddleName), @SearchString) 
AS KEYTBL
ON Per.Person_ID = KEYTBL.[KEY]
WHERE KEY_TBL.RANK > 2
ORDER BY KEYTBL.RANK DESC;  
....

любая идея...? Почему этот полнотекстовый поиск не работает ?

sql-server   search   full-text-search    

475   5   03:11, 3rd August, 2020


SQL запрос для сравнения продаж продукта по месяцам

У меня есть ежемесячное представление базы данных состояния, на основе которого мне нужно построить отчет. Данные в представлении выглядят примерно так:

Category | Revenue  |  Yearh  |  Month
Bikes      10 000      2008        1
Bikes      12 000      2008        2
Bikes      12 000      2008        3
Bikes      15 000      2008        1
Bikes      11 000      2007        2
Bikes      11 500      2007        3
Bikes      15 400      2007        4
...


И так далее

Вид имеет категорию продукта, доход, год и месяц. Я хочу создать отчет, сравнивающий 2007 и 2008 годы, показывающий 0 за месяцы без продаж. Поэтому отчет должен выглядеть примерно так:

Category  |  Month  |  Rev. This Year  |  Rev. Last Year
Bikes          1          10 000               0
Bikes          2          12 000               11 000
Bikes          3          12 000               11 500
Bikes          4          0                    15 400


Главное, что нужно заметить, - это то, что месяц 1 имеет продажи только в 2008 году, и поэтому равен 0 для 2007 года. Кроме того, месяц 4 только не имеет продаж в 2008 году, следовательно, 0, в то время как он имеет продажи в 2007 году и все еще показывают вверх.

Кроме того, отчет фактически относится к финансовому году - поэтому я хотел бы иметь пустые столбцы с 0 в обоих случаях, если бы не было продаж, скажем, в месяце 5 за 2007 или 2008 год.

Запрос, который я получил, выглядит примерно так:

SELECT 
    SP1.Program,
    SP1.Year,
    SP1.Month,
    SP1.TotalRevenue,
    IsNull(SP2.TotalRevenue, 0) AS LastYearTotalRevenue

FROM PVMonthlyStatusReport AS SP1 
     LEFT OUTER JOIN PVMonthlyStatusReport AS SP2 ON 
                SP1.Program = SP2.Program AND 
                SP2.Year = SP1.Year - 1 AND 
                SP1.Month = SP2.Month
WHERE 
    SP1.Program = 'Bikes' AND
    SP1.Category = @Category AND 
    (SP1.Year >= @FinancialYear AND SP1.Year <= @FinancialYear + 1) AND
    ((SP1.Year = @FinancialYear AND SP1.Month > 6) OR 
     (SP1.Year = @FinancialYear + 1 AND SP1.Month <= 6))

ORDER BY SP1.Year, SP1.Month

Проблема с этим запросом заключается в том, что он не вернет четвертую строку в моем примере данных выше, так как у нас не было никаких продаж в 2008 году, но мы фактически сделали это в 2007 году.

Это, вероятно, обычный query/problem,, но мой SQL заржавел после того, как так долго занимался разработкой переднего плана. Любая помощь очень ценится!

Кстати, я использую SQL 2005 для этого запроса, так что если есть какие-то полезные новые функции, которые могут помочь мне, дайте мне знать.

sql   sql-server   sql-server-2005   reporting    

796   6   01:04, 6th August, 2020


Какой самый простой способ с помощью T-SQL / MS-SQL добавить строку к существующим ячейкам таблицы?

У меня есть таблица с колонкой 'filename'. Недавно я выполнил вставку в эту колонку, но в спешке забыл добавить расширение файла ко всем введенным именам файлов. К счастью, все они являются изображениями ".jpg".

Как я могу легко обновить столбец 'filename' этих вставленных полей (предполагая, что я могу выбрать последние строки на основе известных значений идентификаторов), чтобы включить расширение '.jpg'?

sql   sql-server   tsql    

404   6   09:48, 6th August, 2020


Почему Guid.ToString() меняет порядок байтов на обратный?

Мы храним некоторые Guid в базе данных MS SQL. Есть какой-то устаревший код, который делает Guid.ToString() , а затем передает их в varchar(64) , и есть какой-то новый код, который передает их с помощью параметра уникального идентификатора. Когда вы смотрите на результаты с помощью MS SQL Management studio, они выглядят по-другому. Порядок байтов первых трех блоков меняется на противоположный, но последний остается тем же самым. Почему?

.net   sql-server    

476   1   00:55, 19th August, 2020


Переход с MySQL на PostgreSQL

В настоящее время мы используем MySQL для продукта, который мы создаем, и стремимся перейти на PostgreSQL как можно скорее, в первую очередь по причинам лицензирования.

Кто-нибудь еще сделал такой шаг? Наша база данных-это жизненная сила приложения и в конечном итоге будет хранить TBs данных, поэтому я очень хочу услышать об опыте работы improvements/losses, основных препятствий в преобразовании SQL и хранимых процедурах и т. д.

Edit: просто чтобы разъяснить тем, кто спрашивал, почему нам не нравится лицензирование MySQL. Мы разрабатываем коммерческий продукт, который (в настоящее время) зависит от MySQL в качестве бэк-энда базы данных. В их лицензии говорится, что мы должны платить им процент от нашей прейскурантной цены за установку, а не фиксированную плату. Как стартап, это менее чем привлекательно.

mysql   database   postgresql   licensing   migration    

499   3   12:20, 22nd August, 2020


Выбрать..... где.... ОПЕРАЦИОННАЯ

Есть ли способ выбрать данные, в которых любое из нескольких условий происходит в одном и том же поле?

Пример: я обычно пишу заявление, например::

select * from TABLE where field = 1 or field = 2 or field = 3

Есть ли способ вместо этого сказать что-то вроде:

select * from TABLE where field = 1 || 2 || 3

Любая помощь будет оценена по достоинству.

mysql    

389   7   11:26, 7th August, 2020


SQL / инструменты запроса?

Я действительно не делал тонну работы с базами данных в течение нескольких лет и стал непривычен к имеющимся инструментам. Несколько лет назад я работал с базами данных oracle и использовал в основном TOAD с небольшим количеством MS Access в качестве моих инструментов выбора для прототипирования запросов, которые я использовал в своих приложениях. Мне очень понравился TOAD в том, что он был супер интуитивно понятным и очень простым в использовании, и я надеюсь найти что-то подобное для MS SQL Server. Что-то с открытым исходным кодом или бесплатно предпочтительнее, так как я сомневаюсь, что мой клиент захочет платить за что-либо, но я готов услышать предложения о том, что стоит денег, если они далеко и далеко лучший в своем классе инструмент, доступный.

sql   sql-server   oracle   toad    

400   16   08:03, 29th August, 2020


Автономные средства отладки хранимых процедур

Я искал хороший бесплатный отладчик для STP (хранимых процедур), поскольку мне нужно внести изменения в некоторые из них в рамках моего недавнего проекта. Хранимые процедуры хранятся в независимых файлах .sql , а не в коде.

В моем случае отладчик значительно ускорит процесс. Может ли кто-нибудь порекомендовать какие-либо инструменты, которые могут быть использованы для этого?

sql   debugging   stored-procedures    

558   2   05:53, 26th August, 2020


Каков формат строки подключения ASP.NET для связанного сервера?

У меня есть сервер базы данных, к которому я не могу подключиться, используя предоставленные мне учетные данные. Однако в промежуточной версии того же сервера имеется связанный сервер, который указывает на производственную базу данных. И промежуточный сервер, и связанный сервер имеют одну и ту же схему.

Меня заверили, что я должен ожидать, что смогу подключиться к живому серверу, прежде чем мы выйдем в прямой эфир. К сожалению, я достиг той точки в своей разработке, когда мне нужно больше, чем образцы записей маркеров, которые в настоящее время находятся в промежуточной базе данных. Итак, я надеялся подключиться к связанному серверу.

До сих пор в моей разработке против этой схемы был против самого промежуточного сервера, используя объекты Subsonic. Все это прекрасно работает.

Я могу подключиться через SQL Server Management Studio к этому связанному серверу и выполнять свои запросы напрямую. Я также могу выполнять "ручные" запросы в C# против связанного сервера, подключив строку подключения к промежуточному серверу и запустив мои запросы как

SELECT * из OpenQuery([LINKEDSERVER], 'QUERY')

Тем не менее, объекты Subsonic-это то, что позволяет мне вовремя и в рамках бюджета реализовать этот проект, поэтому я не собираюсь делать прямые запросы в своем коде.

То, что я ищу, - это есть ли способ указать строку подключения к связанному серверу. Я просмотрел много записей на форуме и т. д. по этой теме и большинству ответов кажется, что они полностью замалчивают часть вопроса "linked server", сосредоточившись на основном синтаксисе строки соединения.

asp.net   sql-server    

334   4   11:19, 5th August, 2020


Лучший способ узнать SQL сервер

Так что я получаю новую работу по работе с базами данных (Microsoft SQL Server, если быть точным). Я ничего не знаю о SQL и уж тем более о SQL сервере. Они сказали, что будут тренировать меня, но я хочу проявить некоторую инициативу, чтобы узнать об этом самостоятельно, чтобы быть впереди. С чего лучше всего начать (учебники, книги и т.д.)? Я хочу узнать больше о языке SQL больше, чем любой из причудливых пунктов и кликов.

sql   sql-server   database    

410   9   10:42, 20th August, 2020


Как создать сценарии, которые будут перестраивать мою базу данных MS SQL Server 2005 с данными?

У меня есть база данных SQL Server 2005, которую я хотел бы воссоздать в любой момент. Я хочу иметь возможность указать на мою базу данных и создать полный набор скриптов, которые не только создадут все таблицы / представления / sprocs / функции , которые находятся в базе данных, но также будут заполнять все таблицы данными.

Есть ли какие-либо инструменты, которые делают это? Есть ли какие-либо открытые или бесплатные инструменты, которые делают это?

sql-server   scripting    

414   3   22:04, 13th August, 2020


Запрос таблицы объединения с полями в виде столбцов

Я не совсем уверен, возможно ли это, или попадает в категорию таблиц pivot, но я решил, что пойду к профессионалам, чтобы увидеть.

У меня есть три основные таблицы: Card, Property и CardProperty. Поскольку карты не имеют одинаковых свойств и часто имеют несколько значений для одного и того же свойства, я решил использовать подход union table для хранения данных вместо того, чтобы иметь действительно большую структуру столбцов в моей карточной таблице.

Таблица свойств-это базовая таблица типов ключевых слов и значений. Таким образом, у вас есть ключевое слово ATK и значение, присвоенное ему. Существует еще одно свойство, называемое SpecialType, для которого карта может иметь несколько значений, например "Sycnro" и "DARK"

Я бы хотел создать представление или хранимую процедуру, которая дает мне идентификатор карты, имя карты и все ключевые слова свойств, назначенные карте в виде столбцов, и их значения в ResultSet для указанной карты. Поэтому в идеале у меня был бы результирующий набор, например:

ID  NAME                   SPECIALTYPE
1   Red Dragon Archfiend   Synchro
1   Red Dragon Archfiend   DARK
1   Red Dragon Archfiend   Effect

и я мог бы подсчитать свои результаты таким образом.

Я думаю, что даже slicker будет просто объединять свойства вместе на основе их ключевого слова, поэтому я мог бы создать ResultSet как:

1  Red Dragon Archfiend   Synchro/DARK/Effect
..

но я не знаю, возможно ли это.

Помогите мне stackoverflow Кеноби! Ты моя единственная надежда.

sql   database-design   stored-procedures    

407   5   04:32, 23rd August, 2020


SQL сервер 2005 триггер Insert не вводить достаточное количество записей

У меня есть таблица в базе данных SQL Server 2005 с триггером, который должен добавлять запись в другую таблицу всякий раз, когда вставляется новая запись. Это, кажется, работает нормально, но если я выполняю Insert Into в главной таблице, которая использует подзапрос в качестве источника значений, триггер вставляет только одну запись в другую таблицу, даже если в главную было добавлено несколько записей. Я хочу, чтобы триггер срабатывал для каждой новой записи, добавленной в главную таблицу. Возможно ли это в 2005 году?

Вставка, которую я делаю, это:

INSERT INTO [tblMenuItems] ([ID], [MenuID], [SortOrder], [ItemReference], [MenuReference], [ConcurrencyID]) SELECT [ID], [MenuID], [SortOrder], [ItemReference], [MenuReference], [ConcurrencyID] FROM [IVEEtblMenuItems]

Вот как выглядит триггер:

CREATE TRIGGER [dbo].[tblMenuItemInsertSecurity] ON [dbo].[tblMenuItems] 
FOR INSERT
AS

Declare @iRoleID int
Declare @iMenuItemID int

Select @iMenuItemID = [ID] from Inserted

DECLARE tblUserRoles CURSOR FASTFORWARD FOR SELECT [ID] from tblUserRoles
OPEN tblUserRoles 
FETCH NEXT FROM tblUserRoles INTO @iRoleID 

WHILE (@@FetchStatus = 0)
  BEGIN
    INSERT INTO tblRestrictedMenuItems(
      [RoleID],
      [MenuItemID],
      [RestrictLevel])

      VALUES(
      @iRoleID,
      @iMenuItemID,
      1)    

    FETCH NEXT FROM tblUserRoles INTO @iRoleID 
  END

CLOSE tblUserRoles 
Deallocate tblUserRoles

sql-server    

447   4   00:13, 8th August, 2020


Рекомендуем инструмент для управления расширенными свойствами в SQL server 2005

Студия управления сервером имеет тенденцию быть немного неинтуитивной, когда дело доходит до управления расширенными свойствами, поэтому кто-нибудь может порекомендовать достойный инструмент, который улучшает ситуацию.

Одна вещь, которую я хотел бы сделать, - это иметь шаблоны, которые я могу применять к объектам, тем самым стандартизируя номенклатуру и содержание свойств, применяемых к объектам.

sql-server   extended-properties    

473   2   09:29, 24th August, 2020


Получить число из диапазона строк sql

У меня есть столбец данных, который содержит Процентный диапазон в виде строки, которую я хотел бы преобразовать в число, чтобы я мог легко сравнивать.

Возможные значения в строке:

'<5%'
'5-10%'
'10-15%'
...
'95-100%'

Я бы хотел преобразовать это в моем предложении select where только в первое число, 5, 10, 15 и т. д. так что я могу сравнить это значение с переданным в "at least this" значением.

Я перепробовал кучу вариаций на тему substring, charindex, convert и replace, но до сих пор не могу получить что-то, что работает во всех комбинациях.

Есть какие-нибудь идеи?

sql-server    

357   8   23:05, 24th August, 2020


Работа с PHP сервером и MySQL сервером в разных часовых поясах

Для тех из нас, кто использует стандартные пакеты общего хостинга, такие как GoDaddy или сетевые решения, как вы обрабатываете конверсии datetime, когда ваш хостинг-сервер (PHP) и MySQL сервер находятся в разных часовых поясах?

Кроме того, есть ли у кого-нибудь рекомендации по определению часового пояса, в котором находится посетитель вашего сайта, и соответствующим образом манипулирует переменной datetime?

php   mysql   datetime   date   timezone    

467   2   02:50, 7th August, 2020


C#: Что Еще Вы Используете, Кроме Набора Данных

Я обнаружил, что все больше не удовлетворяюсь парадигмой DataSet/DataTable/DataRow в .Net, главным образом потому, что это часто на пару шагов сложнее, чем то, что я действительно хочу сделать. В тех случаях, когда я привязываюсь к элементам управления, DataSets-это нормально. Но в других случаях, по-видимому, существует изрядное количество умственных накладных расходов.

Я немного поиграл с SqlDataReader, и это, кажется, хорошо для простых прогулок через select, но я чувствую, что в .Net могут скрываться некоторые другие модели, о которых полезно узнать больше. Я чувствую, что вся помощь, которую я нахожу в этом, просто использует DataSet по умолчанию. Может быть, это и DataReader действительно лучшие варианты.

Я не ищу лучшего / худшего срыва, просто интересно, какие у меня есть варианты и какой опыт у вас был с ними. Спасибо!

- Эрик Сиппл

c#   .net   sql   dataset    

494   13   21:06, 1st October, 2020


Зачем нам нужны объекты сущностей?

Мне действительно нужно увидеть честные, вдумчивые дебаты о достоинствах принятой в настоящее время парадигмы проектирования корпоративных приложений .

Я не убежден, что сущностные объекты должны существовать.

Под объектами сущностей я подразумеваю типичные вещи, которые мы обычно создаем для наших приложений, например "Person", "Account", "Order" и т. д.

Моя нынешняя философия дизайна такова:

  • Весь доступ к базе данных должен осуществляться с помощью хранимых процедур.
  • Всякий раз, когда вам нужны данные, вызовите хранимую процедуру и выполните итерацию по SqlDataReader или строкам в DataTable

(Примечание: Я также построил корпоративные приложения с Java EE, java людьми, пожалуйста, замените экввалентные для моих .NET примеров)

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

Я не строю игрушки. Я говорю о больших транзакционных приложениях большого объема, развернутых на нескольких машинах. Веб-приложения, службы windows, веб-службы, b2b-взаимодействие, вы называете это.

Я использовал или картографы. Я уже написал несколько таких писем. Я использовал стек Java EE, CSLA и несколько других эквивалентов. Я не только использовал их, но и активно разрабатывал и поддерживал эти приложения в производственных средах.

Я пришел к проверенному в бою выводу, что объекты сущностей мешают нам, и без них наша жизнь была бы намного легче.

Рассмотрим этот простой пример: вы получаете вызов службы поддержки по поводу определенной страницы в вашем приложении, которая работает неправильно, возможно, одно из полей не сохраняется, как это должно быть. С моей моделью разработчик, назначенный для поиска проблемы, открывает ровно 3 файла . Файл ASPX, ASPX.CS и SQL с сохраненной процедурой. Проблема, которая может быть пропущенным параметром для вызова хранимой процедуры, требует нескольких минут для решения. Но с любой моделью сущностей вы неизменно запускаете отладчик, начинаете шагать по коду, и в конечном итоге вы можете получить файлы 15-20, открытые в Visual Studio. К тому времени, когда вы спуститесь в самый низ стопки, вы забудете, с чего начали. Мы можем только держать так много вещей в наших головах одновременно. Программное обеспечение невероятно сложное, без добавления каких-либо ненужных слоев.

Сложность разработки и устранение неполадок - это только одна сторона моей проблемы.

Теперь поговорим о масштабируемости.

Делают ли разработчики понимаете ли вы, что каждый раз, когда они пишут или изменяют какой-либо код, взаимодействующий с базой данных, им нужно провести тророговый анализ точного воздействия на базу данных? И не просто копия разработки, я имею в виду имитацию производства, так что вы можете видеть, что дополнительный столбец, который вам теперь требуется для вашего объекта, просто аннулировал текущий план запроса, и отчет, который был запущен за 1 секунду, теперь займет 2 минуты только потому, что вы добавили один столбец в список выбора? И получается, что индекс, который вам теперь требуется, настолько велик, что DBA придется изменить физический макет ваших файлов?

Если вы позволите людям слишком далеко уйти от физического хранилища данных с помощью абстракции, они создадут хаос с приложением, которое нужно масштабировать.

Я вовсе не фанатик. Меня можно убедить, если я ошибаюсь, и, возможно, я ошибаюсь, поскольку существует такой сильный толчок к Linq, чтобы Sql, ADO.NET EF, Hibernate, Java EE, и т.д. Пожалуйста, продумайте свои ответы, если я что-то упускаю, я действительно хочу знать, что это такое, и почему я должен изменить свое мышление.

[Редактировать ]

Похоже, что этот вопрос внезапно снова активен, поэтому теперь, когда у нас есть новая функция комментариев, Я прокомментировал сразу несколько ответов. Спасибо за ответы, я думаю, что это здоровая дискуссия.

Вероятно, мне следовало бы более четко объяснить, что я говорю о корпоративных приложениях. Я действительно не могу комментировать, скажем, игру, которая работает на чьем-то рабочем столе или мобильном приложении.

Одна вещь, которую я должен поставить здесь наверху в ответ на несколько подобных ответов: ортогональность и разделение проблем часто цитируются в качестве причин для перехода entity/ORM. хранимые процедуры, на мой взгляд, являются лучшим примером разделения проблем, который я могу придумать. Если вы запретите любой другой доступ к базе данных, кроме как через хранимые процедуры, вы теоретически можете перестроить всю свою модель данных и не нарушать никакого кода, пока вы поддерживаете входы и выходы хранимых процедур. Они являются прекрасным примером программирования по контракту (просто до тех пор, пока вы избегаете "select *" и документируете результирующие наборы).

Спросите кого-нибудь, кто давно работает в этой отрасли и работает с долгоживущими приложениями: сколько слоев приложений и UI появилось и исчезло за время существования базы данных? Насколько сложно настроить и рефакторировать базу данных, когда есть 4 или 5 различных уровней сохраняемости, генерирующих SQL для получения данных? Ты ничего не можешь изменить! ORMs или любой код, который генерирует SQL, блокирует вашу базу данных в камне .

sql   database   orm   entities    

584   25   06:05, 5th August, 2020


Быстрый простой способ перенести SQLite3 в MySQL?

Кто-нибудь знает быстрый и простой способ переноса базы данных SQLite3 в MySQL?

mysql   sqlite   migration    

2434   18   11:47, 5th August, 2020


В чем разница между сканированием таблиц и сканированием кластеризованных индексов?

Поскольку и A Table Scan , и a Clustered Index Scan по существу сканируют все записи в таблице, почему Кластеризованное сканирование индекса предположительно лучше?

В качестве примера-какова разница в производительности между следующими, когда есть много записей?:

declare @temp table(
    SomeColumn varchar(50)
)

insert into @temp
select 'SomeVal'

select * from @temp

-----------------------------

declare @temp table(
    RowID int not null identity(1,1) primary key,
    SomeColumn varchar(50)
)

insert into @temp
select 'SomeVal'

select * from @temp

sql   sql-server   indexing    

442   3   19:19, 1st August, 2020


Как создать новый экземпляр Sql Server 2005

Я забыл свой пароль для Sql Server 2005. Windows аутентификация не включена, поэтому я не могу войти в систему. Как удалить текущий экземпляр и создать новый экземпляр БД? Или же существует лучшее решение?

sql-server   sql-server-2005    

384   3   11:58, 28th August, 2020


Любимые приемы настройки производительности

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

sql   sql-server   database   performance    

552   25   10:26, 28th August, 2020


SQL 2008 поддержка диалектов для NHibernate

Кто-нибудь работает или знает, существует ли диалект SQL 2k8 для NHibernate?

nhibernate   sql-server-2008    

414   2   06:08, 26th August, 2020


Как удалить повторяющиеся строки?

Как лучше всего удалить повторяющиеся строки из довольно большой таблицы SQL Server (т. е. 300 000 + строк)?

Строки, конечно, не будут идеальными дубликатами из-за существования поля RowID identity.

MyTable

RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null

sql-server   tsql   duplicates    

799   25   15:46, 28th August, 2020


Какой инструмент отчетности вы предпочитаете?

Каждый проект неизменно нуждается в некотором типе функциональности отчетности. От цикла foreach на вашем языке выбора до полной платформы blow BI.

Какие инструменты, виджеты, платформы группа использовала для выполнения своей работы с успехом, разочарованием и неудачей?

sql   reporting   business-intelligence    

458   23   21:40, 28th August, 2020


В чем разница между маской даты oracle 'yy' и 'rr'?

Пример:

select ename from emp where hiredate = todate('01/05/81','dd/mm/yy')

и

select ename from emp where hiredate = todate('01/05/81','dd/mm/rr')

возвращать разные результаты

sql   oracle    

675   6   03:32, 18th August, 2020


Как сделать вставки в таблицу?

У меня есть представление, в котором есть список заданий с данными, такими как то, кому они назначены, и этап, на котором они находятся. Мне нужно написать хранимую процедуру, которая возвращает количество заданий, которые каждый человек имеет на каждом этапе.

До сих пор у меня есть это (упрощенный):

DECLARE @ResultTable table 
(
  StaffName nvarchar(100),
  Stage1Count int,
  Stage2Count int
)

INSERT INTO @ResultTable (StaffName, Stage1Count)
  SELECT StaffName, COUNT(*) FROM ViewJob
  WHERE InStage1 = 1
  GROUP BY StaffName

INSERT INTO @ResultTable (StaffName, Stage2Count)
  SELECT StaffName, COUNT(*) FROM ViewJob
  WHERE InStage2 = 1
  GROUP BY StaffName

Проблема в том, что строки не объединяются. Поэтому, если у сотрудника есть задания в stage1 и stage2, есть две строки в @ResultTable., что я действительно хотел бы сделать, это обновить строку, если она существует для сотрудника, и вставить новую строку, если она не существует.

Кто-нибудь знает, как это сделать, или может предложить другой подход? Я бы очень хотел избежать использования курсоров для итерации по списку пользователей (но это мой запасной вариант).

Я использую SQL Server 2005.

Edit: @Lee: к сожалению, InStage1 = 1 было упрощением. Это действительно больше похоже на то, где DateStarted-это не NULL, а DateFinished - это NULL.

Edit: @BCS: мне нравится идея сделать вставку всех сотрудников сначала, поэтому мне просто нужно делать обновление каждый раз. Но я изо всех сил пытаюсь получить эти утверждения UPDATE правильно.

sql   sql-server   tsql    

418   6   17:43, 4th August, 2020


PHP скрипт для заполнения таблиц MySQL

Кто-нибудь знает о script/class (предпочтительно в PHP), который будет анализировать данный MySQL table's structure , а затем заполнять его x number of rows случайными тестовыми данными на основе типов полей?

Я никогда не видел и не слышал о чем-то подобном и подумал, что проверю, прежде чем писать самому.

php   mysql   testing   dataset   test-data    

346   1   21:31, 23rd August, 2020


Как запросить строку random в SQL?

Как я могу запросить строку random (или как можно ближе к истинно random) в чистом SQL?

sql   random    

566   25   15:15, 29th August, 2020


Пользовательский шрифт в службах отчетов SQL Server 2005

У меня возникли проблемы с моими отчетами SQL Reporting Services. Я использую пользовательский шрифт для заголовков отчетов, и при развертывании на сервере он не отображается правильно, когда я печатаю или экспортирую в PDF/TIFF., я установил шрифт на сервере. Есть ли что-то еще, что мне нужно сделать, чтобы использовать пользовательские шрифты?

При просмотре шрифта в браузере он выглядит корректно-так как на всех клиентских компьютерах установлен шрифт...


Спасибо Райан, твой пост в FAQ решил проблему. Установка шрифтов на сервере устраняет проблему печати, а также проблемы с диаграммами (которые также отображаются на сервере). Как вы уже отмечали (а также упоминалось в FAQ) Reporting Services 2005 не выполняет встраивание шрифтов в файлы PDF. Я думаю, что это нормально на данный момент - самая важная часть была в состоянии нажать печать и получить правильные шрифты.

Причина, по которой шрифты не появились сразу, объясняется в FAQ:

Вопрос: я установил шрифт на своем клиенте / сервере, но я все еще вижу ?или черный ящик. Почему? А: для клиента машина, закрывающая все экземпляры PDF viewer затем снова открыть их следует исправьте эту проблему.

Для сервера перезагрузите компьютер. службы должны разрешить визуализатор PDF чтобы подобрать новую информацию о шрифте.

К сожалению, я тоже видел времена где мне нужна была полная перезагрузка машины чтобы заставить клиента / сервер распознать недавно установленный шрифт.

sql   reporting-services    

561   5   08:21, 11th August, 2020


Какой RDBMS я должен использовать?

Я разработал высокоскоростной транзакционный сервер для передачи данных через интернет, поэтому мне не нужно полагаться на реализацию базы данных, такую как MySQL, чтобы обеспечить это. Это открывает вопрос о том, какую версию SQL использовать?

Мне очень нравится SQLite, но я еще не уверен, что это промышленная сила Что мне нравится, так это то, насколько он легкий на ресурсах.

Я ненавидел MySQL 8 лет назад, но теперь это очевидно IS промышленная сила, и мои партнеры используют ее, поэтому это очевидный выбор на стороне сервера. Если я использую его, я просто подключусь через "localhost" к установленному серверу (служба windows). Меня беспокоит использование памяти.

Я не загружаю результирующий набор в память, но я замечаю около 6 МБ для первого соединения. Я надеюсь, что последующие соединения не являются дополнительными 6 МБ!

Если я использую встроенную библиотеку libmysqld.dll, то каждое новое соединение загружает новый экземпляр встроенного кода клиента / сервера в память? Мы предполагаем, что это так, поскольку каждый процесс будет иметь свою собственную память в процессе...

Несмотря на это, в руководстве указано, что при использовании встроенного сервера libmysqld преимущества памяти существенно теряются при получении результатов строка за строкой, поскольку "использование памяти постепенно увеличивается с каждой полученной строкой, пока не будет вызвано mysql_free_result()." http://dev.mysql.com/doc/refman/5.1/en/mysql-use-result.html

Это означает, что я должен использовать установленную службу. Но это так же быстро, как встроенный сервер?

Есть ли другие недорогие ароматизаторы, которые имеют высокую надежность?

sql    

406   2   16:06, 16th August, 2020


SQL2005: связывание таблицы с несколькими таблицами и сохранение целостности ссылок?

Вот упрощение моей базы данных:

Table: Property
Fields: ID, Address

Table: Quote
Fields: ID, PropertyID, BespokeQuoteFields...

Table: Job
Fields: ID, PropertyID, BespokeJobFields...

Затем у нас есть другие таблицы, которые относятся к таблицам котировок и заданий по отдельности.

Теперь мне нужно добавить таблицу сообщений , где пользователи могут записывать телефонные сообщения, оставленные клиентами относительно заданий и котировок.

Я мог бы создать две идентичные таблицы (QuoteMessage и JobMessage), но это нарушает принцип DRY и кажется беспорядочным.

Я мог бы создать одну таблицу сообщений :

Table: Message
Fields: ID, RelationID, RelationType, OtherFields...

Но это останавливает меня от использования ограничений для обеспечения моей ссылочной целостности. Я также могу предвидеть, что это создает проблемы со стороной devlopment, используя Linq для SQL позже.

Есть ли элегантное решение этой проблемы, или мне в конечном итоге придется взломать что-то вместе?

Ожоги

database   sql-server-2005   referential-integrity    

381   4   11:19, 6th August, 2020


Триггер без транзакции?

Можно ли создать триггер, который не будет в транзакции?

Я хочу обновить данные на связанном сервере с помощью триггера, но из-за проблем с брандмауэром мы не можем создать распределенную транзакцию между двумя серверами.

sql-server   tsql   triggers    

397   2   03:16, 19th August, 2020


PHP с SQL Server 2005+

В настоящее время у нас есть гибридная установка ASP/PHP, подключающаяся к базе данных SQL Server 2005. Но вся работа с запросами выполняется на стороне клиента, я хотел бы переместить часть этого в PHP.

Какой драйвер и / или строка подключения необходимы для подключения к Sql Svr и каков синтаксис для использования в PHP?


Обновление: OK поэтому я определенно пытался избежать использования чего-либо, связанного с копированием DLLs и т. д. Я посмотрю на драйвер SQL2K5PHP (спасибо Винсент). @jcarrascal для ясности, под "client side" я имею в виду наше приложение-это внутреннее веб-приложение , которое работает как HTA, со всеми запросами, выполняемыми через javascript вызовов к ASP, который фактически отправляет запрос DB.

php   sql-server    

358   3   11:39, 11th August, 2020


Выбрать..... где.... ОПЕРАЦИОННАЯ

Есть ли способ выбрать данные, в которых любое из нескольких условий происходит в одном и том же поле?

Пример: я обычно пишу заявление, например::

select * from TABLE where field = 1 or field = 2 or field = 3

Есть ли способ вместо этого сказать что-то вроде:

select * from TABLE where field = 1 || 2 || 3

Любая помощь будет оценена по достоинству.

mysql    

372   7   19:48, 16th August, 2020


SQL / инструменты запроса?

Я действительно не делал тонну работы с базами данных в течение нескольких лет и стал непривычен к имеющимся инструментам. Несколько лет назад я работал с базами данных oracle и использовал в основном TOAD с небольшим количеством MS Access в качестве моих инструментов выбора для прототипирования запросов, которые я использовал в своих приложениях. Мне очень понравился TOAD в том, что он был супер интуитивно понятным и очень простым в использовании, и я надеюсь найти что-то подобное для MS SQL Server. Что-то с открытым исходным кодом или бесплатно предпочтительнее, так как я сомневаюсь, что мой клиент захочет платить за что-либо, но я готов услышать предложения о том, что стоит денег, если они далеко и далеко лучший в своем классе инструмент, доступный.

sql   sql-server   oracle   toad    

438   16   19:40, 10th August, 2020


Автономные средства отладки хранимых процедур

Я искал хороший бесплатный отладчик для STP (хранимых процедур), поскольку мне нужно внести изменения в некоторые из них в рамках моего недавнего проекта. Хранимые процедуры хранятся в независимых файлах .sql , а не в коде.

В моем случае отладчик значительно ускорит процесс. Может ли кто-нибудь порекомендовать какие-либо инструменты, которые могут быть использованы для этого?

sql   debugging   stored-procedures    

406   2   08:21, 28th August, 2020


Каков формат строки подключения ASP.NET для связанного сервера?

У меня есть сервер базы данных, к которому я не могу подключиться, используя предоставленные мне учетные данные. Однако в промежуточной версии того же сервера имеется связанный сервер, который указывает на производственную базу данных. И промежуточный сервер, и связанный сервер имеют одну и ту же схему.

Меня заверили, что я должен ожидать, что смогу подключиться к живому серверу, прежде чем мы выйдем в прямой эфир. К сожалению, я достиг той точки в своей разработке, когда мне нужно больше, чем образцы записей маркеров, которые в настоящее время находятся в промежуточной базе данных. Итак, я надеялся подключиться к связанному серверу.

До сих пор в моей разработке против этой схемы был против самого промежуточного сервера, используя объекты Subsonic. Все это прекрасно работает.

Я могу подключиться через SQL Server Management Studio к этому связанному серверу и выполнять свои запросы напрямую. Я также могу выполнять "ручные" запросы в C# против связанного сервера, подключив строку подключения к промежуточному серверу и запустив мои запросы как

SELECT * из OpenQuery([LINKEDSERVER], 'QUERY')

Тем не менее, объекты Subsonic-это то, что позволяет мне вовремя и в рамках бюджета реализовать этот проект, поэтому я не собираюсь делать прямые запросы в своем коде.

То, что я ищу, - это есть ли способ указать строку подключения к связанному серверу. Я просмотрел много записей на форуме и т. д. по этой теме и большинству ответов кажется, что они полностью замалчивают часть вопроса "linked server", сосредоточившись на основном синтаксисе строки соединения.

asp.net   sql-server    

370   4   03:23, 22nd August, 2020


Лучший способ узнать SQL сервер

Так что я получаю новую работу по работе с базами данных (Microsoft SQL Server, если быть точным). Я ничего не знаю о SQL и уж тем более о SQL сервере. Они сказали, что будут тренировать меня, но я хочу проявить некоторую инициативу, чтобы узнать об этом самостоятельно, чтобы быть впереди. С чего лучше всего начать (учебники, книги и т.д.)? Я хочу узнать больше о языке SQL больше, чем любой из причудливых пунктов и кликов.

sql   sql-server   database    

419   9   14:18, 15th August, 2020


Как создать сценарии, которые будут перестраивать мою базу данных MS SQL Server 2005 с данными?

У меня есть база данных SQL Server 2005, которую я хотел бы воссоздать в любой момент. Я хочу иметь возможность указать на мою базу данных и создать полный набор скриптов, которые не только создадут все таблицы / представления / sprocs / функции , которые находятся в базе данных, но также будут заполнять все таблицы данными.

Есть ли какие-либо инструменты, которые делают это? Есть ли какие-либо открытые или бесплатные инструменты, которые делают это?

sql-server   scripting    

434   3   04:39, 3rd August, 2020


Запрос таблицы объединения с полями в виде столбцов

Я не совсем уверен, возможно ли это, или попадает в категорию таблиц pivot, но я решил, что пойду к профессионалам, чтобы увидеть.

У меня есть три основные таблицы: Card, Property и CardProperty. Поскольку карты не имеют одинаковых свойств и часто имеют несколько значений для одного и того же свойства, я решил использовать подход union table для хранения данных вместо того, чтобы иметь действительно большую структуру столбцов в моей карточной таблице.

Таблица свойств-это базовая таблица типов ключевых слов и значений. Таким образом, у вас есть ключевое слово ATK и значение, присвоенное ему. Существует еще одно свойство, называемое SpecialType, для которого карта может иметь несколько значений, например "Sycnro" и "DARK"

Я бы хотел создать представление или хранимую процедуру, которая дает мне идентификатор карты, имя карты и все ключевые слова свойств, назначенные карте в виде столбцов, и их значения в ResultSet для указанной карты. Поэтому в идеале у меня был бы результирующий набор, например:

ID  NAME                   SPECIALTYPE
1   Red Dragon Archfiend   Synchro
1   Red Dragon Archfiend   DARK
1   Red Dragon Archfiend   Effect

и я мог бы подсчитать свои результаты таким образом.

Я думаю, что даже slicker будет просто объединять свойства вместе на основе их ключевого слова, поэтому я мог бы создать ResultSet как:

1  Red Dragon Archfiend   Synchro/DARK/Effect
..

но я не знаю, возможно ли это.

Помогите мне stackoverflow Кеноби! Ты моя единственная надежда.

sql   database-design   stored-procedures    

455   5   04:09, 29th August, 2020


SQL сервер 2005 триггер Insert не вводить достаточное количество записей

У меня есть таблица в базе данных SQL Server 2005 с триггером, который должен добавлять запись в другую таблицу всякий раз, когда вставляется новая запись. Это, кажется, работает нормально, но если я выполняю Insert Into в главной таблице, которая использует подзапрос в качестве источника значений, триггер вставляет только одну запись в другую таблицу, даже если в главную было добавлено несколько записей. Я хочу, чтобы триггер срабатывал для каждой новой записи, добавленной в главную таблицу. Возможно ли это в 2005 году?

Вставка, которую я делаю, это:

INSERT INTO [tblMenuItems] ([ID], [MenuID], [SortOrder], [ItemReference], [MenuReference], [ConcurrencyID]) SELECT [ID], [MenuID], [SortOrder], [ItemReference], [MenuReference], [ConcurrencyID] FROM [IVEEtblMenuItems]

Вот как выглядит триггер:

CREATE TRIGGER [dbo].[tblMenuItemInsertSecurity] ON [dbo].[tblMenuItems] 
FOR INSERT
AS

Declare @iRoleID int
Declare @iMenuItemID int

Select @iMenuItemID = [ID] from Inserted

DECLARE tblUserRoles CURSOR FASTFORWARD FOR SELECT [ID] from tblUserRoles
OPEN tblUserRoles 
FETCH NEXT FROM tblUserRoles INTO @iRoleID 

WHILE (@@FetchStatus = 0)
  BEGIN
    INSERT INTO tblRestrictedMenuItems(
      [RoleID],
      [MenuItemID],
      [RestrictLevel])

      VALUES(
      @iRoleID,
      @iMenuItemID,
      1)    

    FETCH NEXT FROM tblUserRoles INTO @iRoleID 
  END

CLOSE tblUserRoles 
Deallocate tblUserRoles

sql-server    

362   4   09:34, 3rd August, 2020


Рекомендуем инструмент для управления расширенными свойствами в SQL server 2005

Студия управления сервером имеет тенденцию быть немного неинтуитивной, когда дело доходит до управления расширенными свойствами, поэтому кто-нибудь может порекомендовать достойный инструмент, который улучшает ситуацию.

Одна вещь, которую я хотел бы сделать, - это иметь шаблоны, которые я могу применять к объектам, тем самым стандартизируя номенклатуру и содержание свойств, применяемых к объектам.

sql-server   extended-properties    

358   2   06:38, 9th August, 2020


Диагностирования тупиков на сервере SQL 2005

Мы видим некоторые пагубные, но редкие условия взаимоблокировки в базе данных Stack Overflow SQL Server 2005.

Я прикрепил профилировщик, настроил профиль trace, используя эту превосходную статью об устранении тупиков, и захватил кучу примеров. Самое странное, что тупиковая запись всегда одна и та же :

UPDATE [dbo].[Posts]
SET [AnswerCount] = @p1, [LastActivityDate] = @p2, [LastActivityUserId] = @p3
WHERE [Id] = @p0

Другой оператор deadlocking варьируется, но обычно это какое-то тривиальное, простое чтение таблицы posts. Этот всегда погибает в тупике. Вот вам пример

SELECT
[t0].[Id], [t0].[PostTypeId], [t0].[Score], [t0].[Views], [t0].[AnswerCount], 
[t0].[AcceptedAnswerId], [t0].[IsLocked], [t0].[IsLockedEdit], [t0].[ParentId], 
[t0].[CurrentRevisionId], [t0].[FirstRevisionId], [t0].[LockedReason],
[t0].[LastActivityDate], [t0].[LastActivityUserId]
FROM [dbo].[Posts] AS [t0]
WHERE [t0].[ParentId] = @p0

Чтобы быть совершенно ясным, мы не видим тупиков записи / записи, но читаем / пишем.

На данный момент мы имеем смесь LINQ и параметризованных SQL запросов. Мы добавили with (nolock) ко всем SQL запросам. Возможно, это и помогло некоторым. У нас также был один (очень) плохо написанный запрос значка, который я исправил вчера, который занимал более 20 секунд, чтобы выполнить каждый раз, и выполнялся каждую минуту. Я надеялся, что это было источником некоторых проблем с замком!

К сожалению, я получил еще одну тупиковую ошибку около 2 часов назад. Те же самые точные симптомы, тот же самый точный виновник пишут.

По-настоящему странно то, что оператор блокировки write SQL, который вы видите выше, является частью очень специфического пути кода. Он выполняется только тогда, когда к вопросу добавляется новый ответ-он обновляет родительский вопрос с новым количеством ответов и last date/user. это, очевидно, не так часто по сравнению с огромным количеством считываний, которые мы делаем! Насколько я могу судить, мы не делаем огромное количество записей в любом месте приложения.

Я понимаю, что NOLOCK-это своего рода гигантский молоток, но большинство запросов, которые мы здесь выполняем, не должны быть такими точными. Будет ли вам небезразлично, если ваш профиль пользователя устарел на несколько секунд?

Использование NOLOCK с Linq немного сложнее, как это обсуждает здесь Скотт Ханселман .

Мы заигрываем с идеей использования

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

на базовом контексте базы данных, так что все наши запросы LINQ имеют этот набор. Без этого нам пришлось бы оборачивать каждый вызов LINQ, который мы делаем (ну, простые считывающие вызовы, которые являются подавляющим большинством из них), в блок кода транзакции строки 3-4, что некрасиво.

Я думаю, что немного разочарован тем, что тривиальные чтения в SQL 2005 могут затормозить на записи. Я мог бы видеть, что писать / писать тупики-это огромная проблема, но читает? У нас здесь нет банковского сайта, нам не нужна идеальная точность каждый раз.

Идеи? Мысли?


Вы создаете новый объект LINQ - SQL DataContext для каждой операции или, возможно, используете один и тот же статический контекст для всех своих вызовов?

Джереми, мы по большей части делимся одним статическим datacontext в базовом контроллере:

private DBContext _db;
/// <summary>
/// Gets the DataContext to be used by a Request's controllers.
/// </summary>
public DBContext DB
{
    get
    {
        if (_db == null)
        {
            _db = new DBContext() { SessionName = GetType().Name };
            //_db.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED");
        }
        return _db;
    }
}

Вы рекомендуете нам создать новый контекст для каждого контроллера, или для каждой страницы, или .. а чаще всего?

sql-server   sql-server-2005   deadlock    

399   22   00:41, 13th August, 2020


Лучший способ инкапсулировать сложную логику курсора Oracle PL/SQL в виде представления?

Я написал код PL/SQL для денормализации таблицы в форму much-easer-to-query. Код использует временную таблицу для выполнения некоторой части своей работы, объединяя некоторые строки из исходной таблицы вместе.

Логика записывается как конвейерная табличная функция, следуя шаблону из связанной статьи. Табличная функция использует объявление PRAGMA AUTONOMOUS_TRANSACTION для разрешения временного манипулирования таблицей, а также принимает входной параметр курсора, чтобы ограничить денормализацию определенными значениями ID.

Затем я создал представление для запроса табличной функции, передавая все возможные значения ID в качестве курсора (другие варианты использования функции будут более ограничительными).

Мой вопрос: действительно ли все это необходимо? Неужели я совершенно упустил из виду гораздо более простой способ сделать то же самое?

Каждый раз, когда я касаюсь PL / SQL, у меня создается впечатление, что я печатаю слишком много.

Обновление: я добавлю эскиз таблицы, с которой имею дело, чтобы дать всем представление о денормализации, о которой я говорю. В таблице хранится история заданий сотрудников, каждое из которых содержит строку активации и (возможно) строку завершения. У сотрудника может быть несколько одновременных заданий, а также одна и та же работа снова и снова в несмежных диапазонах дат. Например:

| EMP_ID | JOB_ID | STATUS | EFF_DATE    | other columns...
|      1 |     10 | A      | 10-JAN-2008 |
|      2 |     11 | A      | 13-JAN-2008 |
|      1 |     12 | A      | 20-JAN-2008 |
|      2 |     11 | T      | 01-FEB-2008 |
|      1 |     10 | T      | 02-FEB-2008 |
|      2 |     11 | A      | 20-FEB-2008 |

Запрос на то, чтобы выяснить, кто работает, когда в какой работе, является нетривиальным. Итак, моя функция денормализации заполняет временную таблицу только диапазонами дат для каждого задания, для любого EMP_ID s, переданного через курсор. Прохождение через EMP_ID с 1 и 2 приведет к следующим результатам:

| EMP_ID | JOB_ID | START_DATE  | END_DATE    |
|      1 |     10 | 10-JAN-2008 | 02-FEB-2008 |
|      2 |     11 | 13-JAN-2008 | 01-FEB-2008 |
|      1 |     12 | 20-JAN-2008 |             |
|      2 |     11 | 20-FEB-2008 |             |

( END_DATE позволяет NULL s для заданий,которые не имеют заранее определенной даты окончания.)

Как вы можете себе представить, эта денормализованная форма намного проще для запроса, но для ее создания-насколько я могу судить-требуется временная таблица для хранения промежуточных результатов (например, записей заданий, для которых была найдена строка активации, но не termination...yet). Использование конвейерной табличной функции для заполнения временной таблицы и последующего возврата ее строк-это единственный способ, который я понял, как это сделать.

sql   oracle   plsql    

579   6   17:33, 23rd August, 2020


MyISAM против InnoDB

Я работаю над проектами, которые включают в себя много записей базы данных, я бы сказал ( 70% вставляет и 30% читает ). Это соотношение также будет включать обновления, которые я считаю одним чтением и одной записью. Чтение может быть грязным (например, мне не нужна 100% точная информация во время чтения).
Задача, о которой идет речь, будет заключаться в выполнении более 1 миллиона транзакций базы данных в час.

Я прочитал кучу материала в интернете о различиях между MyISAM и InnoDB, и MyISAM кажется мне очевидным выбором для конкретной базы данных/таблиц, которые я буду использовать для этой задачи. Из того, что я, кажется, читаю, InnoDB хорошо, если транзакции необходимы, так как поддерживается блокировка уровня строки.

Есть ли у кого-нибудь опыт работы с этим типом нагрузки (или выше)? Разве MyISAM-это правильный путь?

mysql   database   performance   innodb   myisam    

609   25   19:12, 20th August, 2020


Существует ли эквивалент профилировщика для MySql?

"Microsoft SQL Server Profiler - это графический пользовательский интерфейс к SQL Trace для мониторинга экземпляра компонента Database Engine или служб Analysis Services."

Я нахожу использование SQL Server Profiler чрезвычайно полезным во время разработки, тестирования и при отладке проблем приложений баз данных. Кто-нибудь знает, есть ли эквивалентная программа для MySql?

mysql   sql-server   database    

482   9   01:09, 5th August, 2020


SQL Server 2005-экспорт таблицы программно (запустите файл .sql, чтобы перестроить его)

У меня есть база данных с таблицей клиентов, которые имеют некоторые данные

У меня есть еще одна база данных в офисе, что все то же самое, но мой стол клиентов пуст

Как я могу создать sql файл в SQL Server 2005 (T-SQL), который берет все, что находится на столе клиентов из первой базы данных, создает, скажем, buildcustomers.sql, я zip этот файл, копирую его по сети, выполняю его на моем SQL сервере и вуаля! мой столик клиентов полон

Как я могу сделать то же самое для всей базы данных?

sql   sql-server   sql-server-2005   database-table    

446   7   02:22, 22nd August, 2020


Это OK, чтобы отбросить статистику sql?

Мы пытались изменить множество столбцов с nullable на not nullable, что включает в себя удаление всех связанных объектов, внесение изменений и воссоздание связанных объектов.

Мы использовали SQL Compare для создания сценариев,но я заметил, что SQL Compare не создает статистические объекты. Означает ли это, что его можно отбросить, и база данных будет работать так же хорошо, как и раньше без них, или Red Gate пропустил трюк?

sql   sql-server   scripting   statistics    

474   4   18:53, 13th August, 2020


Как поддерживать рекурсивный инвариант в базе данных MySQL?

У меня есть дерево, закодированное в базе данных MySQL как ребра:

CREATE TABLE items (
    num INT,
    tot INT,
    PRIMARY KEY (num)
    );
CREATE TABLE tree (
    orig INT,
    term INT
    FOREIGN KEY (orig,term) REFERENCES items (num,num)
    )

Для каждого листа в дереве, items.tot устанавливается кем-то. Для внутренних узлов items.tot должен быть суммой его дочерних элементов. Повторное выполнение следующего запроса приведет к желаемому результату.

UPDATE items SET tot = (
    SELECT SUM(b.tot) FROM
        tree JOIN items AS b
        ON tree.term = b.num 
        WHERE tree.orig=items.num)
    WHERE EXISTS 
        (SELECT * FROM tree WHERE orig=items.num)

(обратите внимание, что это на самом деле не работает, но это к делу не относится)

Предположим, что база данных существует и инвариант уже удовлетворен.

Вопрос в том:

Каков наиболее практичный способ обновления DB при сохранении этого требования? Обновления могут перемещать узлы вокруг или изменять значение tot на конечных узлах. Можно предположить, что листовые узлы останутся листовыми узлами, внутренние узлы останутся внутренними узлами, и все это останется как правильное дерево.

Некоторые мысли у меня были:

  • Полное аннулирование, после любого обновления, пересчитать все (ум... Нет)
  • Установите триггер в таблице элементы для обновления родительского элемента любой обновляемой строки
    • Это было бы рекурсивно (обновления запускают обновления, запускают обновления,...)
    • Не работает, MySQL не может обновить таблицу, которая запустила триггер
  • Установите триггер для планирования обновления родительского элемента любой обновляемой строки
    • Это было бы итеративно (получить элемент из расписания, обработка его планирует больше элементов)
    • Что же это такое? Доверяйте клиентскому коду, чтобы получить его правильно?
    • Преимущество заключается в том, что если обновления упорядочены правильно, то меньше сумм должно быть вычислено. Но этот порядок сам по себе является осложнением.

Идеальное решение было бы обобщить на другие "aggregating invariants"

FWIW я знаю, что это "немного за бортом", но я делаю это для удовольствия (Fun: verb, находя невозможное, делая это. :-)

mysql   algorithm   data-structures   invariants    

448   2   12:03, 15th August, 2020


Лучший подход к разбору для SQL в PHP файлов?

Для моей старшей диссертации я разработал программу, которая будет автоматически обнаруживать и предлагать исправления уязвимостей SQL инъекций с использованием подготовленных инструкций. В частности, расширение mysqli для PHP. Мой вопрос для сообщества SO заключается в следующем: каков ваш предпочтительный подход к обнаружению SQL в исходном коде PHP?

Я использовал перечисление, содержащее SQL keywords (SELECT, INSERT, ...) , и в основном анализировал каждую строку, повторяя перечисление, чтобы определить, присутствует ли какой-либо SQL. Кроме того, я должен был убедиться, что синтаксический анализатор не ошибочно обнаруживает html (например <\select>).

Для меня это решение работало нормально, но теперь у меня есть немного больше времени на руках и я подумал о рефакторинге кода, чтобы использовать более элегантное (и эффективное) решение. Пожалуйста, ограничьте свои решения использованием C# , поскольку это то, в чем я написал свою программу.

c#   .net   php   sql   parsing    

445   6   10:37, 16th August, 2020


Используйте предложение LIKE в части внутреннего соединения

Могу ли я / должен ли я использовать критерий LIKE как часть внутреннего соединения при построении сохраненного procedure/query? я не уверен, что задаю правильный вопрос, поэтому позвольте мне объяснить.

Я создаю процедуру, которая будет принимать список ключевых слов для поиска в столбце, содержащем текст. Если бы я сидел за пультом, то выполнил бы его именно так:

SELECT Id, Name, Description
  FROM dbo.Card
 WHERE Description LIKE '%warrior%' 
       OR
       Description LIKE '%fiend%' 
       OR 
       Description LIKE '%damage%'

Но трюк, который я немного подхватил, чтобы сделать разбор списка "strongly typed" в хранимой процедуре, заключается в том, чтобы разобрать список в табличную переменную/временную таблицу, преобразовать его в нужный тип и затем выполнить внутреннее соединение с этой таблицей в моем конечном результирующем наборе. Это отлично работает при отправке, скажем, списка целых чисел IDs в процедуру. Я заканчиваю тем, что у меня есть последний запрос, который выглядит следующим образом:

SELECT Id, Name, Description
  FROM dbo.Card
       INNER JOIN @tblExclusiveCard ON dbo.Card.Id = @tblExclusiveCard.CardId

Я хочу использовать этот трюк со списком строк. Но поскольку я ищу конкретное ключевое слово, я собираюсь использовать предложение LIKE. Поэтому в идеале я думаю, что мой последний запрос будет выглядеть следующим образом:

SELECT Id, Name, Description
  FROM dbo.Card
       INNER JOIN @tblKeyword ON dbo.Card.Description LIKE '%' + @tblKeyword.Value + '%'

Это possible/recommended?

Есть ли лучший способ сделать что-то подобное?


Причина, по которой я ставлю подстановочные знаки на обоих концах предложения, заключается в том, что в текстах карт используются термины "archfiend", "beast-warrior", "direct-damage" и "battle-damage".

У меня складывается впечатление, что в зависимости от производительности я могу либо использовать указанный запрос, либо использовать полнотекстовый поиск по ключевым словам для выполнения той же задачи?

Кроме того, что сервер делает текстовый индекс для полей, которые я хочу найти в тексте, есть ли что-то еще, что мне нужно сделать?

sql   sql-server   design-patterns    

401   10   12:58, 24th August, 2020


Как записать выходные данные хранимой процедуры непосредственно в файл на FTP без использования локальных или временных файлов?

Я хочу получить результаты хранимой процедуры и поместить их в файл CSV в папку FTP.

Однако загвоздка заключается в том, что я не могу создать локальный/временный файл, который я могу затем FTP перезаписать.

Подход, который я использовал, состоял в том, чтобы использовать пакет SSIS для создания временного файла, а затем иметь задачу FTP в пакете для FTP файла, но наши DBA не позволяют создавать временные файлы на любых серверах.

в ответ Якову Эллису

Я думаю, что нам нужно будет убедить DBA-х позволить мне использовать хотя бы долю на сервере, который они не работают, или спросить их, как они это сделают.

в ответ на слова Кева

Мне нравится идея интеграции CLR, но я не думаю, что наши DBA даже знают, что это такое lol , и они, вероятно, тоже не допустят этого. Но я, вероятно, смогу сделать это в рамках задачи сценария в пакете SSIS, который можно запланировать.

sql-server   sql-server-2005   ssis   ftp    

422   6   20:51, 29th August, 2020


Если у меня есть строка PHP в формате YYYY-DD-MM и timestamp в MySQL, есть ли хороший способ конвертировать между ними?

Мне интересно провести сравнение между строкой даты и MySQL timestamp. Однако я не вижу легкой конверсии. Неужели я упускаю что-то очевидное?

php   mysql   time   timestamp   date    

412   6   20:11, 27th August, 2020


Linq для SQL - базовой длины столбца

Я использую Linq для SQL в течение некоторого времени, и я нахожу его очень полезным и простым в использовании. С другими инструментами ORM, которые я использовал в прошлом, объект entity, заполненный из базы данных, обычно имеет свойство, указывающее длину базового столбца данных в базе данных. Это полезно в ситуациях привязки данных, когда можно установить свойство MaxLength на textbox, например, чтобы ограничить длину ввода, введенного пользователем.

Я не могу найти способ с помощью Linq до SQL получить длину базового столбца данных. Кто-нибудь знает, как это сделать? Помогите пожалуйста.

linq-to-sql    

385   3   17:22, 1st August, 2020


Отношения внешних ссылок в dbml

Так что у меня есть схема базы данных, как это:

Пользователи
UserId

RoleUserXRef
RoleUserId
RoleId
UserId


Роли
RoleId
Имя


С внешними ключами, определенными между ролями пользователя & RoleUserXRef и RoleUserXRef &. В принципе, у меня есть один ко многим отношениям между пользователями и ролями.

Как бы я смоделировал это в dbml, чтобы созданный пользовательский класс имел список ролей, которые пользователь назначил им?


oop   linq-to-sql   many-to-many    

455   1   09:12, 5th August, 2020


Автоматизируйте Синхронизацию Oracle Таблиц С MySQL Таблицами

Университет, в котором я работаю, использует Oracle для системы баз данных. В настоящее время у нас есть программы, которые мы запускаем ночью, чтобы загрузить то, что нам нужно, в некоторые локальные таблицы доступа для наших потребностей тестирования. Доступ становится маленьким для этого сейчас, и нам нужно что-то большее. Кроме того, ночные задания требуют постоянного обслуживания, чтобы продолжать работать (из-за проблем с сетью, изменений таблиц, плохого кода:)), и я хотел бы устранить их, чтобы освободить нас для более важных вещей.

Я больше всего знаком с MySQL, поэтому я настраиваю тестовый сервер MySQL. Как лучше всего автоматизировать копирование необходимых таблиц из Oracle в MySQL?

Редактировать: я принял ответ. Мне не нравится ответ, но он кажется правильным на основе дальнейших исследований и отсутствия других ответов. Спасибо всем, кто обдумал мой вопрос и ответил на него.

mysql   database   oracle    

532   4   07:51, 23rd August, 2020


SQL Сервер - Чтение "Грязных" Данных Плюсы И Минусы

Почему я должен или не должен использовать грязные чтения:

set transaction isolation level read uncommitted

в SQL сервере?

sql   sql-server    

513   4   04:43, 29th August, 2020


Рекомендуемый SQL дизайн базы данных для тегов или меток

Я слышал о нескольких способах реализации тегирования; использование таблицы сопоставления между TagID и ItemID (имеет смысл для меня, но масштабируется ли она?), добавление фиксированного числа возможных столбцов TagID к ItemID (кажется, это плохая идея), сохранение тегов в текстовом столбце, разделенном запятыми (звучит безумно, но может сработать). Я даже слышал, что кто-то рекомендовал разреженную матрицу, но тогда как же имена тегов растут изящно?

Я пропустил лучшую практику для тегов?

sql   database-design   tags   data-modeling   tagging    

512   6   20:55, 12th August, 2020


Лучший способ выполнения динамического подзапроса в службах MS Reporting Services?

Я новичок в SQL Server Reporting Services, и мне было интересно, как лучше всего сделать следующее:

  • Запрос на получение списка популярных IDs
  • Подзапрос на каждый элемент для получения свойств из другой таблицы

В идеале итоговые столбцы отчета должны выглядеть следующим образом:

[ID] [property1] [property2] [SELECT COUNT(*)
                              FROM AnotherTable 
                              WHERE ForeignID=ID]

Возможно, есть способы построить гигантский запрос SQL, чтобы сделать это все за один раз, но я бы предпочел разделить его на части. Рекомендуется ли написать функцию VB для выполнения подзапроса для каждой строки? Спасибо за любую помощь.

sql   sql-server   reporting-services   service   reporting    

460   3   03:21, 7th August, 2020


Не удается добавить имя Входа сервера Sql

Когда я пытаюсь создать логин сервера SQL, говоря:

CREATE LOGIN [ourdomain\SQLAccessGroup] FROM WINDOWS;

Я получаю эту ошибку

Принципал сервера " ourdomain\SQLAccessGroup " уже существует.

Однако, когда я попробую этот код

DROP LOGIN [ourdomain\SQLAccessGroup]

Я получаю эту ошибку

Невозможно удалить имя Входа 'ourdomain\SQLAccessGroup', так как оно не существует или у вас нет разрешения.

Пользователь, который я выполняю этот код как sysadmin. Кроме того, пользователь ourdomain\SQLAccessGroup не отображается в этом запросе

select * from sys.server_principals

У кого-нибудь есть какие-нибудь идеи?

sql-server   sql-server-2005   administration    

409   3   00:09, 11th August, 2020


Как создать таблицу сопоставления в среде SQL Server Management Studio?

Я изучаю дизайн таблиц в SQL, и мне интересно, как создать таблицу сопоставления, чтобы установить связь many-to-many между двумя другими таблицами?

Я думаю, что таблица сопоставления нуждается в двух первичных ключах - но я не вижу, как создать это, поскольку кажется, что может быть только 1 столбец первичного ключа?

Я использую функцию диаграмм баз данных для создания своих таблиц и связей.

sql-server   sql-server-2005   entity-relationship    

411   1   01:06, 26th August, 2020


Я что-то упустил насчет LINQ?

Кажется, я что-то упускаю из виду LINQ. Мне кажется, что он берет некоторые элементы SQL, которые мне нравятся меньше всего, и перемещает их в язык C# и использует их для других вещей.

Я имею в виду, что я мог видеть преимущество использования SQL-подобных утверждений на вещах, отличных от баз данных. Но если бы я хотел написать SQL, ну, почему бы просто не написать SQL и не сохранить его из C#?, что я здесь упускаю?

c#   sql   linq    

490   6   22:38, 19th August, 2020


Пакетный файл для "Script" базы данных

Можно ли как-то использовать .bat -файл для сценария схемы и / или содержимого базы данных сервера SQL?

Я могу сделать это с помощью мастера, но хотел бы упростить создание этого файла для целей управления версиями.

Я хотел бы избежать использования сторонних инструментов, просто ограничивая себя инструментами, которые поставляются с сервером SQL.

sql-server   batch-file   command-line   scripting   batch-processing    

434   1   15:09, 7th August, 2020


Представление порядка в реляционной базе данных

У меня есть коллекция объектов в базе данных. Картинки в фотогалерее, товар в каталоге, главы в книге и т. д. Каждый объект представлен в виде строки. Я хочу иметь возможность произвольно упорядочивать эти изображения, сохраняя этот порядок в базе данных, чтобы при отображении объектов они были в правильном порядке.

Например, предположим, что я пишу книгу,и каждая глава-это объект. Я пишу свою книгу и размещаю главы в следующем порядке:

Введение, доступность, форма и Функция, Ошибки, Последовательность, Заключение, Индекс

Он отправляется в Редактор и возвращается со следующим предложенным порядком:

Введение, Форма, Функция, Доступность, Последовательность, Ошибки, Заключение, Индекс

Как я могу хранить этот заказ в базе данных надежным и эффективным способом?

У меня были следующие идеи, но я не в восторге от них:

  1. Массив. Каждая строка имеет порядок ID, когда порядок изменяется (через удаление с последующей вставкой), порядок IDs обновляются. Это упрощает поиск, так как это просто ORDER BY , но кажется, что его легко сломать.

    // REMOVAL
    UPDATE ... SET orderingID=NULL WHERE orderingID=removedID
    UPDATE ... SET orderingID=orderingID-1 WHERE orderingID > removedID
    // INSERTION
    UPDATE ... SET orderingID=orderingID+1 WHERE orderingID > insertionID
    UPDATE ... SET orderID=insertionID WHERE ID=addedID

  2. Связанный список. Каждая строка имеет столбец для идентификатора следующей строки в заказе. Обход кажется дорогостоящим здесь, хотя может каким-то образом использовать ORDER BY , о котором я не думаю.

  3. Разнесенный массив. Установите orderingID (как используется в #1), чтобы быть большим, так что первый объект 100, Второй 200 и т.д. Затем, когда происходит вставка, вы просто помещаете ее в (objectBefore + objectAfter)/2 . Конечно, это должно было бы быть перебалансировано время от времени, поэтому у вас нет вещей слишком близко друг к другу (даже с поплавками, вы в конечном итоге столкнетесь с ошибками округления).

Ни один из них не кажется мне особенно элегантным. У кого-нибудь есть лучший способ сделать это?

sql   database   django   django-models    

550   11   17:20, 13th August, 2020


Как получить доступ к источнику данных Excel из пакета SSIS, развернутого на 64-разрядном сервере?

У меня есть пакет SSIS, который экспортирует данные в пару файлов Excel для передачи третьей стороне. Чтобы заставить его работать как запланированное задание на 64-разрядном сервере, я понимаю, что мне нужно установить шаг как тип CmdExec и вызвать 32-разрядную версию DTExec. Но мне кажется, что я не могу правильно передать команду в строке соединения для файлов Excel.

Пока что у меня есть это:

DTExec.exe /SQL \PackageName /SERVER OUR2005SQLSERVER /CONNECTION 
LETTER_Excel_File;\""Provider=Microsoft.Jet.OLEDB.4.0";"Data 
Source=""C:\Temp\BaseFiles\LETTER.xls";"Extended Properties=
""Excel 8.0;HDR=Yes"" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING E

Это дает мне ошибку: Option "Properties=Excel 8.0;HDR=Yes" is not valid.

Я попробовал несколько вариантов с кавычками, но пока не смог сделать это правильно.

Кто-нибудь знает, как это исправить?

UPDATE:

Спасибо за вашу помощь, но я решил пока пойти с файлами CSV, поскольку они, похоже, просто работают на 64-битной версии.

sql-server   excel   ssis    

620   5   13:42, 15th August, 2020


Указание перечисления mySQL в модели Django

Как мне определить и использовать ENUM в модели Django?

python   mysql   django   django-models   enums    

583   8   21:40, 9th August, 2020


Группировка запусков данных

SQL эксперты,

Есть ли эффективный способ группировать прогоны данных вместе с помощью SQL?
Или это будет более эффективно обрабатывать данные в коде.

Например, если у меня есть следующие данные:

ID|Name
01|Harry Johns
02|Adam Taylor
03|John Smith
04|John Smith
05|Bill Manning
06|John Smith

Мне нужно показать это:

Harry Johns
Adam Taylor
John Smith (2)
Bill Manning
John Smith

@Matt: Извините, что у меня возникли проблемы с форматированием данных с помощью встроенной таблицы html, она работала в предварительном просмотре, но не в окончательном отображении.

sql    

413   6   06:18, 21st August, 2020


В SQL Server, как я могу создать инструкцию CREATE TABLE для данной таблицы?

Я потратил много времени на то, чтобы найти решение этой проблемы , поэтому в духе этого поста я публикую его здесь, поскольку я думаю, что это может быть полезно для других.

Если у кого-то есть лучший сценарий или что-то добавить, пожалуйста, опубликуйте его.

Edit: Да, ребята, я знаю, как это сделать в Management Studio, но мне нужно было иметь возможность сделать это из другого приложения.

sql-server   scripting   dynamic-sql    

486   15   16:22, 23rd August, 2020


PostgreSQL: индексы GIN или GiST?

Из той информации, которую я смог найти, они оба решают одни и те же проблемы - более эзотерические операции, такие как удержание массива и пересечение (&&,@>, <@, и т. д.). Однако мне было бы интересно получить совет о том, когда использовать тот или иной метод (или ни один из них).
Документация PostgreSQL содержит некоторую информацию об этом:

  • GIN поиск по индексу примерно в три раза быстрее, чем GiST
  • GIN индексация занимает примерно в три раза больше времени, чем GiST
  • GIN индексы обновляются примерно в десять раз медленнее, чем GiST
  • GIN индексы в two-to-three раз больше, чем GiST

Однако мне было бы особенно интересно узнать, есть ли влияние на производительность, когда объем памяти для индексирования начинает уменьшаться (т. е. размер индекса становится намного больше, чем доступная память)? Мне сказали на канале #postgresql IRC, что GIN должен хранить весь индекс в памяти, иначе он не будет эффективен, потому что, в отличие от B-дерева, он не знает, какую часть читать с диска для конкретного запроса? Вопрос был бы таков: верно ли это (потому что мне тоже говорили обратное)? Имеет ли GiST такие же ограничения? Существуют ли другие ограничения, о которых я должен знать при использовании одного из этих алгоритмов индексирования?

postgresql   indexing   gin   gist-index    

514   1   13:09, 11th August, 2020


Какой хороший способ инкапсулировать доступ к данным с помощью PHP/MySQL?

Большая часть моего опыта находится в стеке MSFT, но сейчас я работаю над сайд-проектом, помогая кому-то с личным сайтом с дешевым хостингом, который построен на стеке LAMP. Мои возможности по установке дополнительных компонентов ограничены, поэтому мне интересно, как написать код доступа к данным без внедрения необработанных запросов в файлы .php.

Я люблю, чтобы все было просто, даже с этим .NET. Обычно я пишу хранимые процедуры для всего, и у меня есть вспомогательный класс, который обертывает все вызовы для выполнения процедур и возврата наборов данных. Я не ищу полномасштабного ORM,но это может быть путь, и другие, кто рассматривает этот вопрос, возможно, ищут его.

Помните, что у меня есть учетная запись $7/month GoDaddy, поэтому я ограничен тем, что уже установлено в их базовом пакете.

Edit: спасибо rix0rr, Алан, Андерс, Дракон, Я проверю все это. Я отредактировал вопрос, чтобы быть более открытым для решений ORM, поскольку они так популярны.

php   mysql   database   lamp    

393   6   03:32, 22nd August, 2020


С чего начать изучение оповещений и уведомлений сервера SQL?

Совсем недавно начались проблемы с заданием агента сервера SQL, содержащим пакет SSIS для извлечения производственных данных и их суммирования в отдельную базу данных отчетов.

Я думаю , что некоторые из настроек предупреждений/уведомлений, с которыми я пытался играть, вызвали проблему, поскольку задание выполнялось без присмотра в течение предыдущих двух недель.

Так... Где хорошее место, чтобы начать читать на SQL агент оповещения и уведомления?
Я хочу включить какое-то предупреждение/уведомление, чтобы я всегда был в курсе:

  1. Что задание завершается успешно (как проверка, чтобы убедиться, что оно всегда выполняется), или
  2. Что задание столкнулось с какой-то ошибкой, которая должна включать достаточно информации (например, номер ошибки), чтобы я мог диагностировать причину ошибки

Как всегда, любая помощь будет принята с благодарностью!

sql-server   ssis   notifications   alert   etl    

484   3   22:03, 2nd August, 2020


Как отправить email в локальное время пользователя на сервере .NET / Sql?

Я пишу программу, которая должна посылать email каждый час на час, но в то же время локально для пользователя.

Скажем, у меня есть 2 пользователя в разных часовых поясах. Джон сейчас в Нью-Йорке, а Фред-в Лос-Анджелесе. Сервер находится в Чикаго. Если я хочу отправить email в 6.30 локально каждому пользователю,мне придется отправить email Джону в 7 вечера по серверному времени и Фреду в 4 часа по серверному времени.

Каков хороший подход к этому в .NET / Sql сервере? Я нашел файл xml со всей информацией о часовом поясе, поэтому я подумываю написать сценарий для импорта его в базу данных, а затем запросить его.

Edit: я использовал “t4znet.dll " и сделал все сравнения на стороне .NET.

sql   .net   sql-server   timezone    

372   3   13:41, 3rd August, 2020


SQL Запрос Справки-Оценка Множественного Выбора Тестов

Сказать, что я студент, то есть инт ID. У меня есть фиксированный набор из 10 вопросов с несколькими вариантами ответов с 5 возможными ответами. У меня есть нормализованная таблица ответов, которая имеет идентификатор вопроса, Student.answer (1-5) и Student.ID

Я пытаюсь написать один запрос, который вернет все оценки за определенный pecentage. С этой целью я написал простой UDF, который принимает Student.answers и правильный ответ, поэтому он имеет 20 параметров.

Я начинаю задаваться вопросом, не лучше ли денормализовать таблицу ответов,принести ее в мое приложение и позволить моему приложению вести счет.

Кто-нибудь когда-нибудь занимался чем-то подобным и имел представление?

dynamic-sql    

444   6   21:06, 1st October, 2020


Как отобразить записи, содержащие определенную информацию в SQl

Как выбрать все записи, содержащие "LCS" в столбце заголовка в sql.

sql   sql-server    

383   3   13:48, 23rd August, 2020


Использование кэшированных учетных данных для подключения к SQL 2005 через границу домена

С момента переезда в Vista некоторое время назад на моей машине разработки подключение к серверам SQL в нашем домене DMZ active directory из клиентских инструментов, таких как SSMS, не работает так, как раньше. В XP, пока я аутентифицировался каким-то образом на сервере (например, направляя Explorer в \server.dmzdomain\c$ и вводя допустимые cred в приглашение входа), SSMS будет использовать эти кэшированные учетные данные для подключения.

Однако с момента перехода на Vista, при попытке подключения SSMS к серверу в домене DMZ я получаю сообщение Login failed for user ". Пользователь не связан с доверенным соединением сервера SQL. Если я изменю параметры подключения, чтобы использовать именованные каналы вместо стандартного TCP/IP,, мои кэшированные учетные данные будут отправлены, и все будет работать нормально. В этом случае Брандмауэр Windows выключен или включен, а соединения с серверами в нашем внутреннем домене (тот же домен, в котором находится мой dev PC) отлично работают над TCP/IP или именованными каналами.

Я не возражаю слишком много использовать именованные каналы для этих соединений в качестве обходного пути, но похоже, что TCP/IP-рекомендуемый метод подключения, и мне не нравится не понимать, почему он не работает, как я ожидал. Есть идеи?

sql-server   ssms    

456   3   02:16, 4th August, 2020


Какой хороший способ проверить, находятся ли две даты в один и тот же календарный день в TSQL?

Вот проблема, с которой я сталкиваюсь: у меня есть большой запрос, который должен сравнить даты в предложении where, чтобы увидеть, если две даты находятся в один и тот же день. Мое текущее решение, которое отстойно, состоит в том, чтобы отправить даты в UDF, чтобы преобразовать их в полночь того же дня, а затем проверить эти даты на равенство. Когда дело доходит до плана запроса, это катастрофа, как и почти все UDFs в предложениях joins или where. Это одно из немногих мест в моем приложении, где я не смог искоренить функции и дать оптимизатору запросов то, что он действительно может использовать для поиска лучшего индекса.

В этом случае слияние кода функции обратно в запрос кажется нецелесообразным.

Мне кажется, я упускаю здесь что-то простое.

Вот функция для справки.

if not exists (select * from dbo.sysobjects 
              where id = object_id(N'dbo.f_MakeDate') and               
              type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
  exec('create function dbo.f_MakeDate() returns int as 
         begin declare @retval int return @retval end')
go

alter function dbo.f_MakeDate
(
    @Day datetime, 
    @Hour int, 
    @Minute int
)
returns datetime
as

/*

Creates a datetime using the year-month-day portion of @Day, and the 
@Hour and @Minute provided

*/

begin

declare @retval datetime
set @retval = cast(
    cast(datepart(m, @Day) as varchar(2)) + 
    '/' + 
    cast(datepart(d, @Day) as varchar(2)) + 
    '/' + 
    cast(datepart(yyyy, @Day) as varchar(4)) + 
    ' ' + 
    cast(@Hour as varchar(2)) + 
    ':' + 
    cast(@Minute as varchar(2)) as datetime)
return @retval
end

go

Чтобы усложнить ситуацию, я подключаюсь к таблицам часовых поясов, чтобы проверить дату по местному времени, которое может отличаться для каждой строки:

where 
dbo.f_MakeDate(dateadd(hh, tz.Offset + 
    case when ds.LocalTimeZone is not null 
    then 1 else 0 end, t.TheDateINeedToCheck), 0, 0) = @activityDateMidnight

[Редактировать]

Я включаю предложение @Todd's:

where datediff(day, dateadd(hh, tz.Offset + 
    case when ds.LocalTimeZone is not null 
    then 1 else 0 end, t.TheDateINeedToCheck), @ActivityDate) = 0

Мое неправильное представление о том, как работает datediff (один и тот же день года в последовательные годы дает 366, а не 0, как я ожидал), заставило меня потратить много усилий.

Но план запроса не изменился. Я думаю, что мне нужно вернуться к чертежной доске со всем этим.

sql   sql-server   tsql   datetime   user-defined-functions    

453   10   19:32, 19th August, 2020


Как фильтровать по 2 полям при загрузке данных в таблицу базы данных access из электронной таблицы excel

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

Есть электронные таблицы сделаны. Они загружаются в базу данных. Мне нужно отфильтровать дубликаты от загрузки. Единственный способ сделать это-убедиться, что для каждой записи эти два поля не совпадают с записью, уже находящейся в базе данных. Поскольку просто потому, что одно поле такое же, это не означает, что его дубликат. Есть два конкретных поля, давайте назовем их FLDA и FLDB, которые оба должны соответствовать записи в базе данных уже. Я уже могу фильтровать по одному полю. Я думаю, что это должен быть подзапрос, но я не уверен, как его применить. Это трудно описать. Просто спросите, если вы не уверены, что я имею в виду.

sql   ms-access    

435   7   21:55, 26th August, 2020


Существует ли инструмент сравнения с открытым исходным кодом SQL Server DB?

Я работаю над проектом с открытым исходным кодом, который использует SQL Server 2005 в качестве хранилища данных. Нам нужен инструмент сравнения DB для создания скриптов diff, чтобы иметь возможность обновить DB из одной версии в другую.

Есть ли открытый исходный код или бесплатный инструмент SQL Server DB diff, который генерирует скрипт преобразования?

sql-server   sql-server-2005   compare    

467   12   20:12, 6th August, 2020


Сравнение дат вступления в силу в SQL

Интересно, есть ли лучше, почему в предложении WHERE выбора записей, когда вам нужно посмотреть на эффективные даты начала и окончания?

В настоящее время это, как я сделал это в прошлом на сервере MS SQL. Просто беспокоюсь о дате, а не о времени. Я использую SQL Server 2005.

AND Convert(datetime, Convert(char(10), ep.EffectiveStartDate, 101))
   <= Convert(datetime, Convert(char(10), GetDate(), 101))
AND Convert(datetime, Convert(char(10), ep.EffectiveEndDate, 101))
   >= Convert(datetime, Convert(char(10), GetDate(), 101))

sql   sql-server   date   sql-server-2005    

535   5   13:03, 8th August, 2020


Что является лучшим способом, чтобы взаимодействовать с сервером MySQL?

Я собираюсь использовать C/C++, и хотел бы знать, как лучше всего поговорить с сервером MySQL. Должен ли я использовать библиотеку, которая поставляется с установкой сервера? Есть ли у них хорошие библиотеки, которые я должен рассматривать, кроме официальной?

c++   sql   mysql   c   database    

428   4   06:42, 1st August, 2020


Что лучше: специальные запросы или хранимые процедуры?

Предполагая, что вы не можете использовать LINQ по какой-либо причине, лучше ли размещать ваши запросы в хранимых процедурах или же лучше выполнять специальные запросы к базе данных (например, SQL Server для аргументации)?

sql   stored-procedures    

460   22   10:07, 27th August, 2020


CSV (или лист в XLS) до SQL создание (и вставка) операторов с .Net?

Есть ли у кого-нибудь техника для создания команд SQL table create (и Data insert) прагматически из CSV (или листа в a .xls) файл?

У меня есть сторонняя система баз данных, которую я хотел бы заполнить данными из файла csv (или листа в файле xls), Но поставляемый импортер не может создать структуру таблицы автоматически, как это делает импорт. В моем файле csv есть много таблиц с большим количеством столбцов, поэтому я хотел бы автоматизировать процесс создания таблиц, а также импорт данных, если это возможно, но я не уверен, как приступить к созданию инструкции create...

.net   sql   csv   xls    

477   4   15:49, 10th August, 2020


Определение того, работает ли сервер SQL

Я ищу способ опросить различные серверы и проверить, что SQL сервер запущен и работает. Я пишу свой код в C#. я не особенно забочусь об отдельных базах данных, просто сервер SQL работает и реагирует.

Есть какие-нибудь идеи?

c#   sql-server    

463   6   00:37, 26th August, 2020


ASP.Net: как сделать разбиение на страницы с повторителем?

Я использую элемент управления Repeater на своем сайте для отображения данных из базы данных. Мне нужно сделать разбиение на страницы ("теперь отображается страница 1 из 10", 10 элементов на странице и т. д.), Но я не уверен, что я собираюсь сделать это наилучшим образом.

Я знаю, что управление повторителем не имеет встроенной пагинации, поэтому мне придется сделать свой собственный. Есть ли способ сообщить элементу управления DataSource, чтобы он возвращал строки 10-20 гораздо большего результирующего набора? Если нет, то как мне записать это в запрос (SQL Server 2005)? В настоящее время я использую ключевое слово TOP, чтобы вернуть только первые 10 строк, но я не уверен, как отобразить строки 10-20.

asp.net   sql-server    

371   3   13:19, 5th August, 2020


Есть ли хорошие инструменты для автоматизации задач управления сервером SQL?

Я знаю, что мог бы писать сценарии и создавать задания для их запуска, но, по крайней мере, некоторые из того, что я хочу, чтобы это было за пределами моих возможностей программирования.

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

Я думаю, что я, вероятно, ищу DBA в коробке!

Или это может быть просто, что мне нужны лучшие инструменты мониторинга производительности вместо этого. Я знаю, как позаботиться о обеих этих проблемах, но это больше, что я забываю проверить эти проблемы, пока я не начну видеть проблемы с производительностью с моими приложениями.

sql-server    

428   4   10:03, 29th August, 2020


Лучший / самый быстрый формат сжатия для баз данных (sqlserver)?

Кто-нибудь нашел хороший формат сжатия для баз данных MS Sqlserver? Если да, то что вы используете и довольны ли вы тем, как он работает?

Моя компания часто сжимает снимок базы данных с одного из наших клиентов и загружает его, чтобы у нас была локальная копия для тестирования и разработки. Мы пробовали zip в прошлом, но как только файлы базы данных пересекли границу 4Gb, нам пришлось использовать rar (zip-это только 32-бит). Проблема в том, что RAR занимает много времени для сжатия, и мы не знаем, дает ли он нам лучшую степень сжатия.

Это не вопрос о утилите сжатия, а формат сжатия. Мы используем WinRar, но рассматриваем 7zip, который поддерживает ряд форматов.

sql-server   compression   zip    

432   3   04:48, 12th August, 2020


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

У меня есть интересный вопрос дизайна. Я разрабатываю сторону безопасности нашего проекта, чтобы позволить нам иметь разные версии программы для разных затрат, а также позволить пользователям типа менеджера предоставлять или запрещать доступ к частям программы другим пользователям. Его собираются на веб-основе и размещены на наших серверах.

Я использую простой параметр Разрешить или запретить для каждого 'Resource' или экрана.

У нас будет большое количество ресурсов, и пользователь сможет настроить множество различных групп, чтобы пользователи могли контролировать доступ. Каждый пользователь может принадлежать только к одной группе.

У меня есть два подхода к этому в виду, и мне было любопытно, что было бы лучше для сервера SQL с точки зрения производительности.

Опция A наличие записи в таблице доступа означает, что доступ разрешен. Для этого не потребуется столбец в базе данных для хранения информации. Если результаты не возвращаются, то доступ запрещен.

Я думаю, что это будет означать меньшую таблицу, но будут ли запросы искать всю таблицу, чтобы определить, что нет соответствия?

Опция B битовый столбец включен в базу данных, которая управляет Allow/Deny. это будет означать, что всегда есть результат, который нужно найти, и делает для большей таблицы.

Мысли?

sql   sql-server   optimization    

450   4   21:05, 27th August, 2020


Эффективная стратегия для оставления истории аудита trail/изменений для DB приложений?

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

Немного информации о DB:

  • Необходимо иметь возможность расти на тысячи записей в неделю
  • 50-60 таблиц
  • Основные пересмотренные таблицы могут содержать несколько миллионов записей каждая
  • Разумное количество внешних ключей и индексов набора
  • Использование PostgreSQL 8.x

database   postgresql   database-design   crud   audit-trail    

523   6   00:55, 26th August, 2020


Почему реляционные запросы на основе наборов лучше, чем курсоры?

При написании запросов к базе данных в чем-то вроде TSQL или PLSQL у нас часто есть выбор: перебирать строки курсором для выполнения задачи или создавать один оператор SQL, который выполняет одну и ту же работу одновременно.

Кроме того, у нас есть возможность просто вытащить большой набор данных обратно в наше приложение и затем обработать его строка за строкой, с помощью C#, Java, PHP или чего-то еще.

Почему лучше использовать запросы на основе наборов? Какая теория стоит за этим выбором? Каков хороший пример решения на основе курсора и его реляционного эквивалента?

sql   language-agnostic   cursor    

505   11   19:56, 9th August, 2020


Каков самый быстрый способ массовой вставки большого количества данных в SQL сервер (C# клиент)

Я сталкиваюсь с некоторыми узкими местами производительности, когда мой клиент C# вставляет массовые данные в базу данных SQL Server 2005, и я ищу способы ускорить этот процесс.

Я уже использую SqlClient.SqlBulkCopy (который основан на TDS) для ускорения передачи данных по проводу, что очень помогло, но я все еще ищу больше.

У меня есть простой стол, который выглядит так:

 CREATE TABLE [BulkData](
 [ContainerId] [int] NOT NULL,
 [BinId] [smallint] NOT NULL,
 [Sequence] [smallint] NOT NULL,
 [ItemId] [int] NOT NULL,
 [Left] [smallint] NOT NULL,
 [Top] [smallint] NOT NULL,
 [Right] [smallint] NOT NULL,
 [Bottom] [smallint] NOT NULL,
 CONSTRAINT [PKBulkData] PRIMARY KEY CLUSTERED 
 (
  [ContainerIdId] ASC,
  [BinId] ASC,
  [Sequence] ASC
))

Я вставляю данные в блоки, которые в среднем составляют около 300 строк, где ContainerId и BinId являются постоянными в каждом блоке, а значение последовательности равно 0-n, и значения предварительно сортируются на основе первичного ключа.

Счетчик производительности %Disk time тратит много времени на 100%, поэтому ясно, что диск IO является главной проблемой, но скорость, которую я получаю, на несколько порядков ниже, чем у необработанной копии файла.

Поможет ли это кому-нибудь, если я:

  1. Отбросьте первичный ключ, пока я выполняю вставку, и воссоздайте его позже
  2. Сделайте вставки во временную таблицу с той же схемой и периодически переносите их в основную таблицу, чтобы сохранить размер таблицы, в которой происходят вставки, небольшим
  3. Что-нибудь еще? --

Основываясь на полученных ответах, позвольте мне немного прояснить ситуацию:

Портман: я использую кластеризованный индекс, потому что когда все данные будут импортированы, мне нужно будет обращаться к данным последовательно в этом порядке. Мне не особенно нужно, чтобы индекс был там при импорте данных. Есть ли какое-либо преимущество в том, чтобы иметь некластеризованный индекс PK при выполнении вставок, а не полностью отбрасывать ограничение для импорта?

Chopeen: данные генерируются удаленно на многих других машинах (мой сервер SQL в настоящее время может обрабатывать только около 10, но я хотел бы иметь возможность добавить еще). Нецелесообразно запускать весь процесс на локальном компьютере, потому что тогда ему придется обрабатывать в 50 раз больше входных данных, чтобы генерировать выходные данные.

Джейсон: я не делаю никаких параллельных запросов к таблице во время процесса импорта, я попробую удалить первичный ключ и посмотрю, поможет ли это.

c#   sql   sql-server   sql-server-2005    

556   8   21:06, 1st October, 2020


Выберите существующие данные из базы данных для создания тестовых данных

У меня есть база данных SqlServer, которую я вручную заполнил некоторыми тестовыми данными. Теперь я хотел бы извлечь эти тестовые данные в виде инструкций insert и проверить их в системе управления версиями. Идея состоит в том, что другие члены команды должны иметь возможность создавать ту же базу данных, запускать созданные сценарии вставки и иметь те же данные для тестирования и разработки.

Есть ли хороший инструмент, чтобы сделать это? Я не ищу инструмент для генерации данных, как описано здесь .

sql-server   database    

345   4   06:05, 5th August, 2020


(N) Hibernate Автосоединение

Я разрабатываю веб-приложение, используя NHibernate. Можете ли вы сказать мне, как написать запрос NHibernate для следующего запроса SQL:

SELECT v1.Id
FROM VIEW v1
LEFT JOIN VIEW v2 ON v1.SourceView = v2.Id
ORDER BY v1.Position

Это в основном автоматическое соединение, но я не знаю, как написать это в Nhibernate. Допустим, имена свойств совпадают с именами столбцов таблицы.

sql   nhibernate   orm    

495   1   10:30, 29th August, 2020


SQL сервер: примеры строковых данных PIVOTing

Пытаюсь найти несколько простых примеров SQL Server PIVOT. Большинство примеров, которые я нашел, связаны с подсчетом или суммированием чисел. Я просто хочу pivot некоторые строковые данные. Например, у меня есть запрос, возвращающий следующее.

Action1 VIEW  
Action1 EDIT  
Action2 VIEW  
Action3 VIEW  
Action3 EDIT  

Я хотел бы использовать PIVOT (если это вообще возможно), чтобы сделать результаты такими:

Action1 VIEW EDIT  
Action2 VIEW NULL  
Action3 VIEW EDIT  

Возможно ли это вообще с помощью функции PIVOT?

sql-server   tsql   pivot    

506   8   00:02, 24th August, 2020


Создать базу данных из другой базы данных?

Существует ли автоматический способ в SQL Server 2005 создать базу данных из нескольких таблиц в другой базе данных? Мне нужно работать над проектом, и мне нужно только несколько таблиц, чтобы запустить его локально, и я не хочу делать резервную копию 50 gig DB.

UPDATE

Я попробовал Tasks - > Export Data в Management studio, и хотя он создал новую суббазу данных с таблицами, которые я хотел, он не копировал никакие метаданные таблицы, ограничения ie...no PK/FK и никаких идентификационных данных (даже с проверкой сохранения идентичности).

Очевидно, что они нужны мне для работы, поэтому я открыт для других предложений. Я попробую этот инструмент публикации баз данных.

У меня нет доступных служб интеграции, и два сервера SQL не могут напрямую подключаться друг к другу, поэтому они отключены.

Обновление обновления

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

sql-server-2005   tsql    

417   5   00:05, 26th August, 2020


SQL many-to-many соответствие

Я внедряю систему тегов для веб-сайта. Существует несколько тегов на объект и несколько объектов на тег. Это достигается путем ведения таблицы с двумя значениями для каждой записи, по одному для идентификаторов объекта и тега.

Я ищу, чтобы написать запрос, чтобы найти объекты, которые соответствуют заданному набору тегов. Предположим, у меня были следующие данные (в формате [object] - > [tags]* )

apple -> fruit red food
banana -> fruit yellow food
cheese -> yellow food
firetruck -> vehicle red

Если я хочу соответствовать (красный), я должен получить apple и firetruck. Если я хочу соответствовать (фрукты, еда), я должен получить (яблоко, банан).

Как написать запрос SQL do do what I want?

@Jeremy Рутен,

Спасибо за ваш ответ. Используемая нотация использовалась для предоставления некоторых образцов данных - в моей базе данных есть таблица с 1 идентификатором объекта и 1 тегом на запись.

Во-вторых, моя проблема заключается в том, что мне нужно получить все объекты, соответствующие всем тегам. Подставляя свой OR вместо AND вот так:

SELECT object WHERE tag = 'fruit' AND tag = 'food';

Не дает никаких результатов при запуске.

sql   many-to-many   tagging    

405   6   14:46, 18th August, 2020


Эффективное преобразование дат между UTC и локальными (т. е. PST) время в SQL 2005 г.

Что является лучшим способом, чтобы преобразовать UTC datetime в местных datetime. Это не так просто, как разница в getutcdate() и getdate(), потому что разница меняется в зависимости от того, что такое дата.

CLR интеграция для меня тоже не вариант.

Решение, которое я придумал для этой проблемы несколько месяцев назад, состояло в том, чтобы иметь таблицу летнего времени, хранящую начало и конец летнего времени в течение следующих 100 или около того лет, это решение казалось неэлегантным, но преобразования были быстрыми (простой поиск таблицы)

sql-server    

343   3   08:30, 18th August, 2020


Разница между EXISTS и IN в SQL?

В чем разница между EXISTS и IN пунктом в SQL?

Когда мы должны использовать EXISTS , и когда мы должны использовать IN ?

sql    

1588   6   11:35, 11th August, 2020


Что является оптимальным? UNION ВС, где в (str1 выглядит следующим образом, стр2, стр3)

Я пишу программу, которая отправляет email в определенное локальное время клиента. У меня есть.NET метод, который принимает timezone & времени и назначения timezone и возвращает время в этом timezone. Поэтому мой метод состоит в том, чтобы выбрать каждый отдельный timezone в базе данных, проверить, правильно ли это время с помощью метода, а затем выбрать каждого клиента из базы данных с этим timezone(s).

Запрос будет выглядеть как один из них. Имейте в виду, что порядок результирующего набора не имеет значения, поэтому объединение было бы хорошо. Что работает быстрее, или они действительно делают то же самое?

SELECT email FROM tClient WHERE timezoneID in (1, 4, 9)

или

SELECT email FROM tClient WHERE timezoneID = 1
    UNION ALL SELECT email FROM tClient WHERE timezoneID = 4
    UNION ALL SELECT email FROM tCLIENT WHERE timezoneID = 9

Изменить: timezoneID-это внешний ключ к tTimezone, таблица с первичным ключом timezoneID и полем varchar (20) timezoneName.

sql   optimization    

448   7   01:57, 4th August, 2020


присоединение последних из различных тегов usermetadata к пользовательским строкам

У меня есть БД Postgres со столом пользователя (userId, firstName и lastName) и usermetadata таблицы (идентификатор, код, контент, созданный datetime). Я храню различную информацию о каждом пользователе в таблице usermetadata по коду и веду полную историю. например, пользователь (userid 15) имеет следующие метаданные:

15, 'QHS', '20', '2008-08-24 13:36:33.465567-04'  
15, 'QHE', '8', '2008-08-24 12:07:08.660519-04'  
15, 'QHS', '21', '2008-08-24 09:44:44.39354-04'  
15, 'QHE', '10', '2008-08-24 08:47:57.672058-04'  

Мне нужно получить список всех моих пользователей и самое последнее значение каждого из различных кодов usermetadata. Я сделал это программно, и это было, конечно, ужасно медленно. Лучшее, что я мог придумать, чтобы сделать это в SQL,-это присоединиться к подзапросам, которые также были медленными, и мне пришлось сделать по одному для каждого кода.

database   postgresql    

506   3   20:12, 8th August, 2020


Можно ли выполнить AND поиск ключевых слов с помощью FREETEXT() на SQL Server 2005?

Существует запрос , чтобы сделать SO поиска по умолчанию для функциональности стиля AND по сравнению с текущим OR, когда используются несколько терминов.

Официальный ответ был таким:

не так просто, как кажется; мы используем функцию SQL Server 2005 FREETEXT() , и я не могу найти способ указать AND против OR - не так ли?

Итак, есть ли способ?

Есть ряд ресурсов , которые я могу найти, но я не эксперт.

sql-server-2005   search   full-text-search   freetext    

415   3   04:29, 21st August, 2020


Linq 2 SQL на общем хосте

Недавно я столкнулся с проблемой с linq на общем хосте.
Хост-это общий интеллект, и они поддерживают v3.5 фреймворка. Однако я не уверен, установлен ли у них SP1. Мое подозрение заключается в том, что они не.

У меня есть простая таблица News , которая имеет следующую структуру:

NewsID          uniqueidentifier
Title           nvarchar(250)
Introduction    nvarchar(1000)
Article         ntext
DateEntered     datetime (default getdate())
IsPublic        bit (default true)

Моя цель-отобразить 3 самых последних записи из этой таблицы. Я изначально пошел по методу D&D (я знаю, я знаю) и создал источник данных linq и не смог найти способ ограничить результаты так, как я хотел, поэтому я удалил это и написал следующее:

var dc = new NewsDataContext();
var news = from a in dc.News
           where a.IsPublic == true
           orderby a.DateEntered descending
           select new { a.NewsID, a.Introduction };
lstNews.DataSource = news.Take(3);
lstNews.DataBind();

Это прекрасно работало на моей локальной машине.

Однако, когда я загрузил все на общий хост, я получил следующую ошибку:

.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>) 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.MethodAccessException: 
.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>)

Я попытался найти ошибку в Google, но не встретил успеха. Затем я попытался изменить свой запрос всеми возможными способами, удаляя различные комбинации параметров where/orderby, а также ограничивая мой запрос одним столбцом и даже удаляя команду Take .

Поэтому мой вопрос состоит из 3 частей:

  1. Кто-нибудь еще сталкивался с этим, и если да, есть ли исправление "quick"?
  2. Есть ли способ использовать источник данных для ограничения строк?
  3. Есть ли способ определить, какая версия фреймворка общего хоста не хватает для отправки их по электронной почте напрямую (что я сделал и жду ответа)

linq-to-sql   hosting   shared    

429   1   17:27, 9th August, 2020


Асинхронные Вызовы Хранимых Процедур

Можно ли вызвать хранимую процедуру из другой хранимой процедуры асинхронно?

Edit: в частности, я работаю с базой данных DB2.

sql   stored-procedures   db2    

508   3   08:13, 27th August, 2020


Каков самый простой способ выполнения запроса в Visual C++

Я использую Visual C++ 2005 и хотел бы знать Самый простой способ подключения к серверу MS SQL и выполнения запроса.

Я ищу что-то простое, как класс ADO.NET's SqlCommand с его ExecuteNonQuery(), ExecuteScalar() и ExecuteReader().

Вздох предложил ответ, используя CDatabase и ODBC.

Может ли кто-нибудь продемонстрировать, как это будет сделано с использованием шаблонов ATL потребителя для OleDb?

Также как насчет возврата значения scalar из запроса?

sql-server-2005   visual-c++   mfc    

446   4   10:00, 8th August, 2020


Наиболее эффективный способ получить данные из базы данных в сеанс

Каков самый быстрый способ получить большой объем данных (подумайте о гольфе) и самый эффективный (подумайте о производительности), чтобы получить большой объем данных из базы данных MySQL в сеанс, не продолжая делать то, что у меня уже есть:

$sql = "SELECT * FROM users WHERE username='" . mysql_escape_string($_POST['username']) . "' AND password='" . mysql_escape_string(md5($_POST['password'])) . "'";
$result = mysql_query($sql, $link) or die("There was an error while trying to get your information.\n<!--\n" . mysql_error($link) . "\n-->");
if(mysql_num_rows($result) < 1)
 {
    $_SESSION['username'] = $_POST['username'];
    redirect('index.php?p=signup');
 }
$_SESSION['id'] = mysql_result($result, '0', 'id');
$_SESSION['fName'] = mysql_result($result, '0', 'fName');
$_SESSION['lName'] = mysql_result($result, '0', 'lName');
...

И прежде чем кто-нибудь спросит "да", мне действительно нужно "SELECT

Edit: Да, Я дезинфицирую данные, так что не может быть никакой инъекции SQL, которая находится дальше в коде.

php   mysql   session    

438   10   06:22, 10th August, 2020


Копирование / дублирование базы данных без использования mysqldump

Без локального доступа к серверу существует ли какой-либо способ дублировать/клонировать базу данных MySQL (с содержимым и без содержимого) в другую без использования mysqldump ?

В настоящее время я использую MySQL 4.0.

mysql    

458   9   19:57, 3rd August, 2020


Вставить внутрь ... значения ( SELECT ... FROM ... )

Я пытаюсь создать таблицу INSERT INTO , используя входные данные из другой таблицы. Хотя это вполне осуществимо для многих движков баз данных , я всегда стараюсь вспомнить правильный синтаксис для движка SQL дня ( MySQL , Oracle , SQL Server , Informix и DB2 ).

Есть ли в стандарте SQL (например, SQL-92 ) синтаксис серебряной пули, который позволил бы мне вставлять значения, не беспокоясь о базовой базе данных?

sql   database   syntax   database-agnostic   ansi-sql-92    

457   23   08:30, 11th August, 2020


Как лучше всего подключить и использовать базу данных sqlite из C#

Я уже делал это раньше в C++, включая sqlite.h, но есть ли такой же простой способ в C#?

c#   sqlite    

530   8   03:55, 21st August, 2020


Обновление Sharepoint 3.0 до SQL 2005 Backend?

Мы пытаемся избавиться от всех наших баз данных SQL Server 2000, чтобы повторно использовать наш старый сервер DB... Sharepoint 3.0 находится под угрозой срыва.

Я просмотрел много руководств от Microsoft и попробовал инструкции в них. Я также только что попробовал хороший старый exec sp_detach_db / sp_attach_db без удачи. Кто-нибудь действительно сделал это?

sql-server-2005   sharepoint   sql-server-2000    

463   1   13:51, 5th August, 2020


Может DTS тест на наличие таблицы MS-Access

У меня есть база данных Access, в которой я отбрасываю таблицу, а затем создаю таблицу заново. Однако мне нужно иметь возможность проверить таблицу в случае, если таблица будет удалена, но не создана (т. е. когда кто-то останавливает пакет DTS сразу после его запуска-roll - eyes -). Если бы я делал это в базе данных SQL, я бы просто сделал:

IF (EXISTS (SELECT * FROM sysobjects WHERE name = 'Table-Name-to-look-for'))
BEGIN
drop table 'Table-Name-to-look-for'
END

Но как это сделать для базы данных Access?

Дополнительный ответ: есть ли способ заставить пакет DTS игнорировать ошибку и просто перейти к следующему шагу, а не проверять, существует ли он?

SQL Server 2000

sql-server   ms-access   dts    

419   3   16:24, 4th August, 2020


VBScript/ASP Classic

У меня есть пара вопросов относительно VBScript и ASP Classic:

  1. Каков предпочтительный способ доступа к базе данных сервера MS SQL в VBScript/ASP?

  2. Каковы наилучшие методы в отношении отделения модели от представления от контроллера?

  3. Есть еще что-нибудь, что я должен знать о VBScript или ASP?

Если вы еще не заметили, я новичок в кодировании VBScript. Я понимаю, что числа 2 & 3-это своего рода гигантские вопросы "black hole", которые являются слишком общими, поэтому не думайте, что я ожидаю узнать все, что нужно знать об этих двух вопросах отсюда.

sql-server   model-view-controller   asp-classic   vbscript    

489   10   03:42, 20th August, 2020


Несогласованность между MS Sql 2k и 2k5 со столбцами в качестве аргументов функции

У меня возникли проблемы с получением следующего для работы в SQL Server 2k, но он работает в 2k5:

--works in 2k5, not in 2k

create view foo as    
SELECT  usertable.legacyCSVVarcharCol as testvar     
FROM  usertable   
WHERE rsrcID in
    (  select val     
       from
       dbo.fnSplitStringToInt(usertable.legacyCSVVarcharCol, default)
    )

--error message:    
Msg 170, Level 15, State 1, Procedure foo, Line 4    
Line 25: Incorrect syntax near '.'.

Итак, legacyCSVVarcharCol-это столбец, содержащий разделенные запятыми списки INTs. Я понимаю, что это огромный WTF, но это устаревший код,и сейчас ничего нельзя сделать со схемой. Передача "testvar" в качестве аргумента функции также не работает в 2k. На самом деле, это приводит к немного другой (и даже более странной ошибке):

Msg 155, Level 15, State 1, Line 8

'testvar' is not a recognized OPTIMIZER LOCK HINTS option.

Передача жестко закодированной строки в качестве аргумента fnSplitStringToInt работает как в 2k, так и в 2k5.

Кто-нибудь знает, почему это не работает в 2k? Возможно, это известная ошибка в планировщике запросов? Любые предложения о том, как заставить его работать? Опять же, я понимаю, что реальный ответ: "Не храните списки CSV в вашем DB!- но, увы, это не в моей власти.

Некоторые примеры данных, если это помогает:

INSERT INTO usertable (legacyCSVVarcharCol) values ('1,2,3');
INSERT INTO usertable (legacyCSVVarcharCol) values ('11,13,42');

Обратите внимание, что данные в таблице не имеют значения, поскольку это синтаксическая ошибка, и она возникает, даже если usertable полностью пуста.

EDIT: понимая, что, возможно, первоначальный пример был неясным, вот два примера, один из которых работает, а другой - нет, что должно подчеркнуть проблему, которая возникает:

--fails in sql2000, works in 2005

SELECT t1.* 
FROM usertable t1
WHERE 1 in 
    (Select val 
     from 
     fnSplitStringToInt(t1.legacyCSVVarcharCol, ',')
    )

--works everywhere:

SELECT t1.*   
FROM usertable t1
WHERE 1 in 
    ( Select val 
      from 
      fnSplitStringToInt('1,4,543,56578', ',')
    )

Обратите внимание, что единственное различие заключается в том, что первый аргумент для fnSplitStringToInt-это столбец в случае, который завершается неудачей в 2k, и литеральная строка в случае, который завершается успешно в обоих случаях.

sql-server    

354   2   18:03, 8th August, 2020


Использование MySQLi-что лучше для закрытия запросов

У меня есть привычка сводить использование переменных к минимуму. Поэтому мне интересно, есть ли какое-либо преимущество, которое можно получить следующим образом:

$query = $mysqli->query('SELECT * FROM `people` ORDER BY `name` ASC LIMIT 0,30');

// Example 1
$query = $query->fetch_assoc();

// Example 2
$query_r = $query->fetch_assoc();
$query->free();

Теперь, если я прав, Пример 1 должен быть более эффективным, поскольку $query - это unset , когда я переназначаю его, что должно освободить любую память, связанную с ним. Однако есть метод (MySQLi_Result::free()), который освобождает ассоциированную память - это одно и то же?

Если я не вызываю ::free() , чтобы освободить память, связанную с результатом, но unset , переназначив переменную, я делаю то же самое? Я не знаю, как регистрировать такие вещи - у кого-нибудь есть идеи?

php   mysql   memory   mysqli    

474   2   07:27, 18th August, 2020


Каковы преимущества и недостатки отключения NOCOUNT в запросах сервера SQL?

Каковы преимущества и недостатки отключения NOCOUNT в запросах сервера SQL?

sql-server   nocount    

479   7   13:05, 19th August, 2020


Есть ли способ сделать переменную TSQL постоянной?

Есть ли способ сделать переменную TSQL постоянной?

sql-server   tsql    

501   12   20:39, 8th August, 2020


Какие библиотеки PL/SQL для автоматической генерации JSON вы рекомендуете?

Есть ли какие-нибудь хорошие библиотеки PL/SQL для JSON, с которыми вы работали и нашли их полезными?

В PL/SQL мне приходится утомительно передавать код возврата значений JSON в функции JavaScript. Я нашел одну библиотеку PL / SQL для автоматической генерации JSON,но она не делает точно все, что мне нужно. Например, я не мог расширить базовые функции в библиотеке, чтобы вернуть сложную древовидную структуру данных JSON, требуемую используемым мной компонентом дерева JavaScript.

Примечание:
Система, которая находится в производстве уже более 8 лет, была спроектирована так, чтобы использовать PL/SQL для CRUDs и большей части бизнес-логики. PL/SQL также генерирует 90% слоя представления (HTML/JavaScript), с помощью mod PL/SQL. другой 10% является отчетными данными, выполненными через Oracle Reports Builder.

json   plsql    

412   5   16:31, 10th August, 2020


MS SQL Server 2008 "linked server" to Oracle: схема не отображается

У меня есть сервер Windows 2008 (x64) под управлением Microsoft SQL 2008 (x64), и я создаю соединение связанного сервера с сервером Oracle. Я могу установить соединение, но не вижу никакой информации о том, к какой схеме принадлежит таблица.

В SQL 2005 мои связанные серверы показывают информацию о схеме, как я и ожидал.

Кто-нибудь знает, как решить эту проблему? Это проблема с поставщиком, OraOLEDB.Oracle?

Любая помощь или указания будут оценены по достоинству.

sql   sql-server   oracle    

448   3   09:43, 16th August, 2020


Как лучше всего бороться с DBNull-Ми

У меня часто возникают проблемы, связанные с DataRows возвращением из SqlDataAdapters . Когда я пытаюсь заполнить объект с помощью такого кода:

DataRow row = ds.Tables[0].Rows[0];
string value = (string)row;

Как лучше всего справиться с DBNull's в такой ситуации?

c#   .net   sql-server    

555   14   22:28, 15th August, 2020


Новый проект: MySQL или SQL 2005 Экспресс

Я начинаю новый клиент / серверный проект на работе, и я хочу начать использовать некоторые из новых технологий, о которых я читал, LINQ и Generics являются основными из них. До сих пор я разрабатывал эти типы приложений с MySQL, поскольку клиенты не хотели платить большие лицензионные расходы за MSSQL.

Я немного поиграл с экспресс-версиями, но на самом деле никогда ничего с ними не разрабатывал. Новое приложение будет иметь не более 5 одновременных подключений, но будет необходимо для ежедневной отчетности.

  1. Можно ли еще загрузить MSSQL 2005 express? Кажется, я не могу найти его на сайте microsoft. Я бы не решился использовать MSSQL 2008 в проекте так скоро после его выпуска.

  2. Если экспресс-версия адекватна моим потребностям, я уверен, что множество людей, читающих это, использовали их. У вас возникли какие-то проблемы?

mysql   sql-server    

472   6   19:57, 29th August, 2020


NHibernate против LINQ до SQL

Как человек, который не использовал ни одну из этих технологий в реальных проектах, мне интересно, знает ли кто-нибудь, как эти две технологии дополняют друг друга и насколько их функциональные возможности пересекаются?

linq   nhibernate   linq-to-sql   orm    

543   9   15:01, 8th August, 2020


MySQL vs PostgreSQL для веб-приложений

Я работаю над веб-приложением, использующим Python (Django), и хотел бы знать, будет ли MySQL или PostgreSQL более подходящими при развертывании для производства.

В одном из подкастов Джоэл сказал, что у него были некоторые проблемы с MySQL, и данные не были согласованы.

Я хотел бы знать, были ли у кого-то такие проблемы. Кроме того, когда речь заходит о производительности, которую можно легко настроить?

mysql   postgresql    

516   11   08:39, 10th August, 2020


Существует ли задача rake для резервного копирования данных в вашей базе данных?

Существует ли задача rake для резервного копирования данных в вашей базе данных?

У меня уже есть резервная копия моей схемы, но я хочу сделать резервную копию данных. Это небольшая база данных MySQL.

mysql   ruby-on-rails   ruby   database   rake    

415   7   04:54, 9th August, 2020


Тайм-аут не соблюдается в строке подключения

У меня есть долго работающий оператор SQL, который я хочу запустить, и независимо от того, что я помещаю в предложение "timeout=" моей строки подключения, он всегда заканчивается через 30 секунд.

Я просто использую SqlHelper.ExecuteNonQuery() , чтобы выполнить его, и позволяю ему заботиться об открытии соединений и т. д.

Есть ли что-то еще, что может переопределить мой тайм-аут или заставить сервер sql игнорировать его? Я запустил profiler над запросом, и trace не выглядит по-другому, когда я запускаю его в management studio, а не в своем коде.

Management studio завершает запрос примерно за минуту, но даже с тайм-АУ, установленным на 300 или 30000, мой код все равно выходит через 30 секунд.

sql-server   database   timeout    

512   2   15:09, 27th August, 2020


Поддерживает ли MS-SQL таблицы в памяти?

Недавно я начал изменять некоторые из наших приложений, чтобы поддерживать MS SQL Server в качестве альтернативного бэк-энда.

Одна из проблем совместимости, с которой я столкнулся,-это использование функции MySQL CREATE TEMPORARY TABLE для создания таблиц в памяти, которые содержат данные для очень быстрого доступа во время сеанса без необходимости постоянного хранения.

Что такое эквивалент в MS SQL?

Требование состоит в том, что мне нужно иметь возможность использовать временную таблицу так же, как и любую другую, особенно JOIN с постоянными таблицами.

mysql   sql-server   rdbms   portability    

439   8   13:07, 28th August, 2020


Существует ли для служб Reporting Services 2005 блок-график?

Есть коробка диаграмма , или ящик с усами диаграмма для представления услуг 2005? Из-за внешнего вида документации, похоже, нет одного из коробки; поэтому мне интересно, есть ли третья сторона, у которой есть график, или способ построить свой собственный?

sql   reporting-services   graph    

468   4   01:42, 18th August, 2020


В чем разница между временной таблицей и табличной переменной на сервере SQL?

В SQL Server 2005 мы можем создавать временные таблицы одним из двух способов:

declare @tmp table (Col1 int, Col2 int);

или

create table #tmp (Col1 int, Col2 int);

В чем же разница между этими двумя понятиями? Я читал противоречивые мнения о том, по-прежнему ли @tmp использует tempdb, или все происходит в памяти.

В каких сценариях один из них превосходит другой?

sql-server   temp-tables   table-variable    

1158   10   21:06, 1st October, 2020


SQL сервер-тестирование базы данных

Какие инструменты люди используют для тестирования баз данных сервера SQL?

Под этим я подразумеваю все части базы данных:

  • конфигурация
  • таблицы
  • тип столбца
  • сохраняемые процедуры
  • ограничения

Скорее всего, нет ни одного инструмента, чтобы сделать все это.

sql-server   unit-testing    

494   2   05:39, 4th August, 2020


Группа SQL с заказа

У меня есть таблица тегов, и я хочу получить самый высокий счетчик тегов из списка.

Примерные данные выглядят следующим образом

id (1) tag ('night')
id (2) tag ('awesome')
id (3) tag ('night')

с помощью

SELECT COUNT(*), `Tag` from `images-tags`
GROUP BY `Tag`

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

Я попробовал это сделать...

SELECT COUNT(id), `Tag` from `images-tags`
GROUP BY `Tag`
ORDER BY COUNT(id) DESC
LIMIT 20

и я продолжаю получать "Invalid use of group function - ErrNr 1111"

Что я делаю не так?

Я использую MySQL 4.1.25-Debian

mysql   sql   mysql-error-1111    

467   6   17:33, 19th August, 2020


Использовать метаданные таблицы для инструкции select в SQL Server?

У меня есть большая база данных, и я хотел бы выбрать имена таблиц, которые имеют определенное имя столбца. Я сделал что-то подобное в MySQL, но не могу найти никакой информации на сервере SQL.

Я хочу сделать что-то вроде:

select [table] 
from [db] 
where table [has column 'classtypeid']

Как я могу сделать что-то подобное?

sql   sql-server    

405   2   07:01, 27th August, 2020


Сервер SQL для MySQL

У меня есть резервная копия сервера SQL DB .формат bak, который мне удалось успешно восстановить в локальный экземпляр SQL Server Express. Теперь я хочу экспортировать как структуру, так и данные в формате, который примет MySQL. Инструменты, которые я использую для управления MySQL, обычно позволяют мне импортировать / экспортировать .sql файлов, но, к сожалению, Microsoft не сочла нужным сделать мою жизнь такой легкой!

Я не могу поверить, что я первый, кто столкнулся с этим, но Google не очень помог. Кто-нибудь справлялся с этим раньше?

sql-server   database    

328   1   16:11, 8th August, 2020


SQL сервер DateTime сбой преобразования

У меня есть большая таблица с 1 миллионом+ записей. К сожалению, человек, создавший таблицу, решил поместить даты в поле varchar(50) .

Мне нужно сделать простое сравнение дат -

datediff(dd, convert(datetime, lastUpdate, 100), getDate()) < 31

Но он терпит неудачу на convert() :

Conversion failed when converting datetime from character string.

По-видимому, в этой области есть что-то, что ему не нравится, и поскольку существует так много записей, я не могу сказать, просто взглянув на нее. Как я могу правильно очистить все поле даты, чтобы оно не провалилось на convert() ? Вот что у меня сейчас есть:

select count(*)
from MyTable
where
    isdate(lastUpdate) > 0
    and datediff(dd, convert(datetime, lastUpdate, 100), getDate()) < 31

@SQLMenace

Я не беспокоюсь о производительности в этом случае. Это будет одноразовый запрос. Изменение таблицы на поле datetime не является опцией.

@Jon Лимджап

Я попытался добавить третий аргумент, но это не имеет никакого значения.


@SQLMenace

Проблема скорее всего в том, как хранятся данные, есть только два безопасных формата; ISO YYYYMMDD; ISO 8601 yyyy-mm-dd Thh:mm:ss:mmm (без пробелов)

Разве чек isdate() не позаботится об этом?

Мне не нужна точность 100%. Я просто хочу получить большую часть записей за последние 30 дней.


@SQLMenace

select isdate('20080131') -- returns 1
select isdate('01312008') -- returns 0

@Brian Schkerke

Поместите CASE и ISDATE внутри функции CONVERT().

Спасибо! Вот и все.

sql-server   datetime    

479   10   11:46, 5th August, 2020


Как выбрать посты с определенными тегами / категориями в WordPress

Это очень конкретный вопрос, касающийся MySQL , как он реализован в WordPress .

Я пытаюсь разработать плагин, который будет показывать (выбирать) сообщения, которые имеют определенные "теги" и принадлежат к определенным "категориям" (оба несколько)

Мне сказали, что это невозможно, потому что так хранятся категории и теги:

  1. wp_posts содержит список должностей, каждая должность имеет "ID"
  2. wp_terms содержит список терминов (как категорий, так и тегов). Каждый термин имеет двигатели СМД -
  3. wp_term_taxonomy имеет список терминов с их TERM_IDs и имеет определение таксономии для каждого из них (либо категория, либо тег)
  4. wp_term_relationships имеет связи между терминами и должностями

Как я могу присоединиться к таблицам, чтобы получить все записи с тегами "Nuclear" и "Deals", которые также относятся к категории "Category1"?

php   mysql   sql   wordpress   plugins    

464   6   13:32, 17th August, 2020


Могу ли я поддерживать состояние между вызовами SQL Server UDF?

У меня есть скрипт SQL, который вставляет данные (через операторы INSERT, которые в настоящее время числятся в тысячах), один из столбцов содержит уникальный идентификатор (хотя и не тип IDENTITY, а простой ol' int), который на самом деле уникален в нескольких разных таблицах.

Я хотел бы добавить функцию scalar в свой скрипт, который получает следующий доступный ID (т. е. последний раз использовался ID + 1), но я не уверен, что это возможно, потому что, похоже, нет способа использовать глобальную или статическую переменную из UDF, я не могу использовать временную таблицу, и я не могу обновить постоянную таблицу из функции.

В настоящее время мой скрипт выглядит так:

   declare @v_baseID int 
   exec dbo.getNextID @v_baseID out  --sproc to get the next available id
   --Lots of these - where n is a hardcoded value
   insert into tableOfStuff (someStuff, uniqueID) values ('stuff', @v_baseID + n ) 
   exec dbo.UpdateNextID @v_baseID + lastUsedn  --sproc to update the last used id

Но я бы хотел, чтобы это выглядело так:

   --Lots of these
   insert into tableOfStuff (someStuff, uniqueID) values ('stuff', getNextID() ) 

Жесткое кодирование смещения-это боль в заднице и подвержено ошибкам. Упаковка его в простую функцию scalar очень привлекательна, но я начинаю думать, что это не может быть сделано таким образом, поскольку, похоже, нет способа поддерживать счетчик смещения между вызовами. Это правда, или есть что-то, что я упускаю.

На данный момент мы используем SQL Server 2005.

правки для уточнения:

Два пользователя ударяя это не произойдет. Это сценарий обновления, который будет выполняться только один раз и никогда одновременно.

Фактический sproc не имеет префикса sp_, исправлен пример кода.

В обычном использовании мы используем таблицу идентификаторов и sproc, чтобы получить IDs по мере необходимости, я просто искал более чистый способ сделать это в этом скрипте, который по существу просто сбрасывает кучу данных в БД.

sql   sql-server   sql-server-2005    

458   3   05:39, 25th August, 2020


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

У нас есть несколько зеркальных баз данных сервера SQL.

Моя первая проблема-ключевая проблема - это получить уведомление, когда db выходит из строя. Мне не нужно знать, потому что, ЭМ, его зеркальное отражение, и поэтому он (почти) все продолжает работать автоматически, но было бы полезно получить совет, и в настоящее время я получаю отказы, когда я не думаю, что должен быть, поэтому он хочет знать, когда они происходят (без слишком большого рытья), чтобы увидеть, могу ли я определить, почему.

У меня есть запущенные службы, которые я мог бы довольно легко использовать для мониторинга этого-поэтому альтернативный вопрос будет "как программно определить, какой из них является основным, а какой - зеркалом" - предпочтительно более разумным способом, чем просто попытка подключения каждого по очереди (что в основном будет работать, но...).

Спасибо, Мерф

Дополнение:

Один из ответов спрашивает, Почему мне не нужно знать, когда он выходит из строя - ответ заключается в том, что мы разрабатываем с использованием ADO.NET и что имеет автоматическую поддержку failover, все, что вам нужно сделать, это добавить Failover Partner=MIRRORSERVER (где MIRRORSERVER - это имя вашего экземпляра зеркального сервера) в строку подключения, и ваш код будет работать прозрачно-вы можете получить некоторые ошибки в зависимости от того, какие соединения активны, но в нашем случае очень мало.

sql-server    

415   3   06:23, 10th August, 2020


SQL сервер 2k5 потребление памяти?

У меня есть виртуальная машина разработки, которая работает на сервере sql, а также некоторые другие приложения для моего стека, и я обнаружил, что другие приложения работают ужасно. После некоторого рытья, сервер SQL засорял память. После быстрого поиска в Интернете я обнаружил, что по умолчанию он будет потреблять столько памяти, сколько может, чтобы кэшировать данные и возвращать их в систему, как это требуют другие приложения, но этот процесс часто не происходит достаточно быстро, по-видимому, моя ситуация является общей проблемой.

Однако есть способ ограничить память, которую сервер SQL может иметь . Мой вопрос в том, как я должен установить этот предел. Очевидно, мне нужно будет сделать некоторые догадки и проверить, но есть ли абсолютный минимальный порог? Любые рекомендации приветствуются.

Редактировать:

Я отмечу, что на машинах разработчиков есть 2 гигабайта памяти, поэтому я хотел бы иметь возможность запускать виртуальную машину на 768 Мб или меньше, если это возможно. Эта виртуальная машина будет использоваться только для локальной разработки и тестирования, поэтому нагрузка будет очень минимальной. После того, как код был протестирован локально, он переходит в другую среду, где выделено поле сервера SQL. То, что я действительно ищу здесь, - это рекомендации по минимумам

sql-server   performance    

405   4   03:16, 26th August, 2020


Что заставляет Visual Studio не загружать assembly неправильно?

Я с удовольствием кодировал решение приличного размера (чуть более 13k LOC, 5 проектов), которое использует Linq to Sql для доступа к данным. Внезапно я выполнил нормальную сборку, и я получил сладкое, сладкое двусмысленное сообщение:

Ошибка 1 построение не удалось из-за ошибок проверки в C:\xxx\xxx.dbml. Откройте файл и устраните проблемы в списке ошибок, а затем попробуйте восстановить проект. C:\xxx\xxx.dbml

Я не прикасался к своему уровню доступа к данным в течение нескольких недель, и никакие изменения не были внесены в файл DBML. Я пробовал множество безрассудных трюков, таких как повторное создание файла макета, создание копий и повторное добавление существующих файлов обратно в проект после перезапуска Visual Studio (в случае повреждения на уровне файла); все безрезультатно.

Я забыл надеть свои талисманы Visual Studio Skills +5, поэтому я начал искать вокруг, и единственным ответом, который я нашел, который имел смысл, был сброс моих пакетов, потому что Visual Studio не загружала assembly правильно. После запуска "devenv.exe /resetskippkgs" я фактически смог добавить файл dbml обратно в проект DAL и перестроить решение.

Я рад, что это исправлено, но я бы предпочел также получить более глубокое понимание из этого опыта. Кто-нибудь знает, как и почему это происходит в Visual Studio 2008?

Новое редактирование: 10/30/2008 это было не то, что просто случилось со мной. Рич Штраль недавно написал на своем "web log" о том же опыте . Он ссылается на другой блог с той же проблемой и использовал то же действие .

Я столкнулся с этой проблемой несколько раз с момента этого оригинального сообщения, заставляя меня думать, что это не какая-то случайная проблема. Если кто-то найдет окончательный ответ, пожалуйста, напишите.

visual-studio   visual-studio-2008   linq-to-sql    

477   4   15:56, 3rd August, 2020


Почему сервер SQL работает быстрее, когда вы индексируете таблицу после ее заполнения?

У меня есть sproc, который помещает 750k записей во временную таблицу через запрос в качестве одного из своих первых действий. Если я создаю индексы для временной таблицы до ее заполнения, то выполнение элемента занимает примерно вдвое больше времени, чем при индексации После заполнения таблицы. (Индекс-это целое число в одном столбце, индексируемая таблица - это всего лишь два столбца, каждый из которых является одним целым числом.)

Это кажется мне немного странным, но тогда у меня нет самого твердого понимания того, что происходит под капотом. У кого-нибудь есть ответ на этот вопрос?

sql-server   performance   indexing    

523   9   07:59, 24th August, 2020


SQLServer Получает Результаты, Где Значение Равно Null

У меня есть база данных сервера SQL, которую я запрашиваю, и я только хочу получить информацию, когда определенная строка равна null. Я использовал оператор where, такой как:

WHERE database.foobar = NULL

и он ничего не возвращает. Однако я знаю, что есть по крайней мере один результат, потому что я создал экземпляр в базе данных, где 'foobar' равно null. Если я вынимаю оператор where, он показывает данные, поэтому я знаю, что это не rest запроса.

Кто-нибудь может мне помочь?

sql   sql-server   oracle    

480   4   02:58, 19th August, 2020


CPU использование базы данных?

Можно ли получить разбивку использования CPU по базе данных ?

В идеале я ищу интерфейс типа Диспетчера задач для SQL сервера, но вместо того, чтобы смотреть на использование CPU каждого PID (например, taskmgr ) или каждого SPID (например, spwho2k5), я хочу просмотреть общее использование CPU каждой базы данных. Предположим, один экземпляр SQL.

Я понимаю, что инструменты могут быть написаны для сбора этих данных и отчета о них, но мне интересно, есть ли какой-либо инструмент, который позволяет мне увидеть живое представление того, какие базы данных вносят наибольший вклад в нагрузку sqlservr.exe CPU.

sql-server   monitoring    

443   8   11:16, 28th August, 2020


Linq - SQL: могу ли я загрузить только одно поле в объединенную таблицу?

У меня есть одна таблица "orders" с ключом foreing "ProductID".

Я хочу показать заказы в сетке с названием продукта, без LazyLoad для лучшей производительности, но если я использую DataLoadOptions , он извлекает все поля продукта, что выглядит как перебор .

Есть ли способ получить только название продукта в первом запросе? Можно ли установить какой-то атрибут в DBML?

В этой таблице говорится, что "Foreign-key values"-это "Visible" в Linq-SQL, но не знаю, что это значит.

Edit: изменил название, потому что я действительно не уверен, что нет никакого решения.
Не могу поверить, что ни у кого нет такой же проблемы, это очень распространенный сценарий.

.net   sql   performance   linq-to-sql    

491   3   03:13, 12th August, 2020


Как отслеживать запросы на Linq-to-sql DataContext

В подкасте herding code 14 кто-то упоминает, что stackoverflow отображает запросы, которые были выполнены во время запроса в нижней части страницы.

По-моему, это отличная идея. Каждый раз, когда страница загружается, я хочу знать, какие операторы sql выполняются, а также подсчет общего числа DB поездок туда и обратно. Есть ли у кого-нибудь аккуратное решение этой проблемы?

Как вы думаете, какое количество запросов является приемлемым? Я думал, что во время разработки мое приложение может выдать исключение, если для отображения страницы требуется более 30 запросов.

EDIT: мне кажется, я не совсем ясно объяснил свой вопрос. Во время запроса HTTP веб-приложение может выполнить десяток или более операторов sql. Я хочу, чтобы эти утверждения были приложены к нижней части страницы вместе с подсчетом количества утверждений.

ВОТ МОЕ РЕШЕНИЕ:

Я создал класс TextWriter, в который может записываться DataContext:

public class Logger : StreamWriter
    {
        public string Buffer { get; private set; }
        public int QueryCounter { get; private set; }

        public Logger() : base(new MemoryStream())
        {}

        public override void Write(string value)
        {
            Buffer += value + "<br/><br/>";
            if (!value.StartsWith("--")) QueryCounter++;
        }

        public override void WriteLine(string value)
        {
            Buffer += value + "<br/><br/>";
            if (!value.StartsWith("--")) QueryCounter++;
        }
    }

В конструкторе DataContext я настроил регистратор:

public HeraldDBDataContext()
        : base(ConfigurationManager.ConnectionStrings["Herald"].ConnectionString, mappingSource)
    {
        Log = new Logger();
    }

Наконец, я использую событие Application_OnEndRequest , чтобы добавить результаты в нижнюю часть страницы:

protected void Application_OnEndRequest(Object sender, EventArgs e)
    {
        Logger logger = DataContextFactory.Context.Log as Logger;
        Response.Write("Query count : " + logger.QueryCounter);
        Response.Write("<br/><br/>");
        Response.Write(logger.Buffer);
    }

asp.net   linq-to-sql    

597   4   22:44, 24th August, 2020


Как поймать SQLServer тайм-аут исключения

Мне нужно специально поймать SQL исключений таймаута сервера, чтобы их можно было обрабатывать по-разному. Я знаю, что могу поймать SqlException, а затем проверить, содержит ли строка сообщения "Timeout", но мне было интересно, есть ли лучший способ сделать это?

try
{
    //some code
}
catch (SqlException ex)
{

    if (ex.Message.Contains("Timeout"))
    {
         //handle timeout
    }
    else
    {
         throw;
    }
}

c#   .net   sql-server   error-handling    

549   4   10:46, 11th August, 2020


Как агрегировать данные из SQL Server 2005

У меня есть около 150 000 строк данных, записанных в базу данных каждый день. Эти строки представляют исходящие статьи, например. Теперь мне нужно показать график с использованием SSRS , который показывает среднее количество статей в день с течением времени . Мне также нужна информация о фактическом количестве статей со вчерашнего дня .

Идея состоит в том, чтобы иметь агрегированное представление обо всех наших транзакциях и иметь что-то, что может указывать на то, что что-то не так (что мы, например, отправляем 20% меньше статей, чем в среднем).

Моя идея состоит в том, чтобы вчерашние данные перемещались в SSAS каждую ночь и там хранили агрегированное значение количества транзакций и фактическое количество транзакций из вчерашних данных. Использование SSAS, как мы надеемся, ускорит отчеты.

Как вы думаете, это правильная идея? Должен ли я пропустить SSAS и иметь отчеты прямо на необработанных данных? Я знаю, как использовать службы reporting services для необработанных данных с использованием стандартных запросов SQL, но как это изменится при запросе SSAS? Я не знаю , с чего начать ..?

sql-server   reporting-services   ssas    

440   5   13:49, 7th August, 2020


Как обойти неподдерживаемые целочисленные типы полей без знака в MS SQL?

Пытаясь сделать приложение на основе MySQL поддержкой MS SQL, я столкнулся со следующей проблемой:

Я сохраняю auto_increment MySQL как целочисленные поля без знака (разных размеров), чтобы использовать полный диапазон, поскольку я знаю, что никогда не будет отрицательных значений. MS SQL не поддерживает атрибут unsigned для всех целочисленных типов, поэтому мне приходится выбирать между удалением половины диапазона значений или созданием обходного пути.

Одним из очень наивных подходов было бы поместить некоторый код в код абстракции базы данных или в хранимую процедуру, которая преобразует между отрицательными значениями на стороне БД и значениями из большей части диапазона без знака. Это, конечно, испортит сортировку, а также не будет работать с функцией автоматического идентификатора (или это будет каким-то образом?).

Я не могу придумать хороший обходной путь прямо сейчас, есть ли он? Или я просто фанатик и должен просто забыть о половине диапазона?

Редактировать:
Вудхаус: да, наверное, ты прав. В моей голове все еще звучит голос, говорящий, что, возможно, я смогу уменьшить размер поля, если оптимизирую его использование. Но если нет простого способа сделать это, вероятно, не стоит беспокоиться об этом.

mysql   sql-server   database   interop    

488   3   09:55, 20th August, 2020


Как мне работать с котировками ' в SQL

У меня есть база данных с именами в ней, такими как Джон Доу и т. д. К сожалению, некоторые из этих имен содержат цитаты, такие как Кейран О'Киф. Теперь когда я пытаюсь и ищу такие имена следующим образом:

SELECT * FROM PEOPLE WHERE SURNAME='O'Keefe' 

Я (понятно) получаю ошибку.

Как я могу предотвратить возникновение этой ошибки? Я использую Oracle и PLSQL.

sql   oracle    

443   8   14:30, 9th August, 2020


Как выбрать базу данных SQL?

Мы живем в золотой век баз данных, с многочисленными высококачественными коммерческими и бесплатными базами данных. Это здорово, но недостатком является то, что нет простого очевидного выбора для того, кто нуждается в базе данных для своего следующего проекта.

  • Какие ограничения / критерии вы используете для выбора базы данных?
  • Насколько хорошо различные базы данных, которые вы использовали, соответствуют этим constraints/criteria?
  • Какие особенности имеют базы данных?
  • Какие базы данных вы чувствуете себя комфортно, рекомендуя другим?

и т.д...

sql   database    

353   6   10:15, 11th August, 2020


Получить последний элемент в таблице-SQL

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

В основном я хочу получить последний шаг для каждого элемента, заданного ссылкой на пакет. Так что если я сделаю

Select * from HistoryTable where BatchRef = @BatchRef

Он вернет все шаги для всех элементов в пакете-например

Id      Status  BatchRef        ItemCount
1       1       Batch001        100
1       2       Batch001        110
2       1       Batch001        60
2       2       Batch001        100

Но чего я действительно хочу, так это:

Id      Status  BatchRef        ItemCount
1       2       Batch001        110
2       2       Batch001        100

Edit: Appologies - кажется, не удается получить теги TABLE для работы с Markdown - последовал за справкой к письму и выглядит нормально в предварительном просмотре

sql   sql-server   database   tsql    

551   6   00:54, 7th August, 2020


Софт для автоматического сравнения схем PostgreSQL?

Подскажите средство для автоматического сравнения схем PostgreSQL на разных базах данных. Для MySQL использовали SQLyog. Теперь пишем миграции вручную, а различающиеся данные в словарях перегонять — вообще тяжело. Кто что использует или как выкручивается?


UPD: Сами мы используем:

а) для сравнения схем — apgdiff

б) для сравнения данных — LEFT JOIN %)

PostgreSQL   Сравнение   данных    

436   5   14:49, 25th August, 2020


Географически распределённый MySQL

Приветствую all.

Есть желание географически распределить проект, и начать с одной из его состовляющих: MySQL. Интересны ответы тех, кто вплотную работал с этой БД и не в теории знает как работают различные схемы географически распределенной балансировки.

Текущая схема примерно следующая: один веб-сервер и два сервера БД в режиме «master-slave». К одному идут запросы только на чтение, к другому преимущественно на запись, оба сервера БД стоят рядом и соединены кроссом. Есть идея сделать схему немного посложнее и ввести в строй еще несколько серверов в другой стране, при этом настроить репликацию БД. Каналы и там и там хорошие, но задержки уже больше чем при соединении серверов «попа-в-попу». Кто реализовывал такие схемы: что можете сказать?

  • Реально или есть какие-то известные проблемы?
  • Может репликационный трафик можно как-то жать, для экономии канала?
  • Стоит использовать встроенный в MySQL ssl или лучше паковать все в OpenVPN?
  • Какие подводные (или даже вполне надводные) камни встретятся, если к этому еще прибавить master-master?
  • Кто чего скажет о кластерных типах БД в MySQL?


Добавлю, что в первую очередь, естественно интересуют практические знания, чем теоретические.



Подскажите лучшую программу для работы с PostgreSQL под Mac OS

Уже намучался с pgAdmin III от производителя и с DbVisualizer. Основная проблема — импорт/экспорт БД с правельным переномос ключей. Очень хочется найти аналог MySQL Workbench, только для PostgreSQL.

PostgreSQL    

618   5   07:32, 26th August, 2020


Шардинг MongoDB под нагрузкой?

Как ведет себя шардинг MongoDB под нагрузкой? Особенно как влияет на загрузку системы их Map/Reduce?

NoSQL   MongoDB   Партиционирование   и   шардинг   баз   данных    

360   1   13:24, 4th August, 2020


Транзакции, инкрементирование и MySQL UPDATE

Является ли в MySQL операция инкрементирования в UPDATE транзакционно-безопасной? Возможно ли состояние гонки, когда несколько клиентов одновременно выполняют запрос вроде «UPDATE mytable SET myfield=myfield+1 WHERE id=myid»? Если тысяча клиентов одновременно выполнят такой запрос на строке с базовым значением 0, то будет ли в конце значение равно тысяче?

Речь о InnoDB.

MySQL    

289   6   14:45, 7th August, 2020


Как защитить БД с критичными данными от произвола медленных запросов?

Ситуация: есть боевой сервер, на нем — вебсервер и MySQL. С мусклем взаимодействуют, во-первых, PHP-скрипты выполняющиеся под апачем на этом сервере, а во-вторых — удаленные пользователи через TCP. Работают они с одной и той же базой. Однако, работоспособность связки «локальный апач плюс мускль» критична, а «удаленные юзеры плюс мускль» — нет.


«Удаленный» юзер запускает корявый запрос — например, REGEXP селект по неиндексированному столбцу на 20 млн строк. При этом в течение 3-5 минут тормозят все остальные запросы к этой базе, которые при обычных условиях летают. В итоге критичная веб-часть перестает отвечать с приемлемой скоростью. Как сделать так, чтобы удаленные юзеры могли посылать говнозапросы без вреда функционированию локальных подключений к БД? «Локалка» и «удаленщики» коннектятся к БД разными юзерами. Разнести базу на две — вариант не устраивает. Запас производительности на сервере есть (8 ядер, 24 гига памяти).

MySQL   Базы   данных    

420   7   05:03, 11th August, 2020


Хорошие книги по Oracle (DBA, PL/SQL) судя по вашему опыту?

Интересует список литературы по которым учились Ораклисты. На данный момент есть огромное количество как бумажной, так и электронной литературы и из этой массы очень тяжело выбрать действительно хороший материал. Посоветуйте хорошие по вашему мнению и опыту книги по DBA (Ora 10g) и PL/SQL


Ещё советуют посмотреть видеокурсы по Oracle от Пушкашу и Мирончика.

Oracle   SQL   PL/SQL    

464   4   10:52, 27th August, 2020


NoSQL — особенности применения

В каком случае оправдано использование таких баз данных как MongoDB, CouchDB, Redis и некоторых других?

Имеет ли смысл ставить их вместо классического mysql, на сайте со слабой нагрузкой?

Используются ли они в связке с mysql, или работают отдельно?



Русский словарь?

Нужен небольшой русский словарь словарь. Очень здорово было бы сразу в SQL. Но CSV или txt тоже ок.

SQL    

266   1   08:54, 29th August, 2020


Какие посоветуете средства аудита изменений данных в MSSQL?

Какие посоветуете средства для аудита изменений данных в MSSQL (нужно сохранять изменение всех полей), где связка mssql + NHibernate.

Из того что нашёл, это:

1. Повесить на тригеры в базу данных запись истории в таблицы с историей.

2. В самом NHibernate повесить обработчики в Interceptors или EventListeners и писать в таблицы с историей.

3. Использовать фичу 2008 MSSQL — Change Data Capture. Тут вопрос, стоит ли её для этого использовать, где-то читал «Основной сценарий, в котором предполагается использовать CDC — это „большие“ ETL (extraction, transformation, loading) приложения, которые асинхронно кусками перегоняют данные из OLTP системы в хранилище данных.»

Может есть готовые простые решения.



Как заставить Cogear использовать базы Sqlite?

Возникла необходимости использовать Cogear с Sqlite-базой.

Так как он основан на Codeigniter, который эти базы поддерживает, проблем, как мне кажется, быть не должно.


Куда копать?

PHP   SQLite    

329   2   23:22, 1st August, 2020


Репликация Redis

Занимаюсь одним стартапом в котором применяем редис, сейчас вплотную стал вопрос о построении отказоустойчивого кластера БД.
Как известно, редис пока поддерживает только master-slave репликацию. Необходимо, чтобы при падении мастера какой-нибудь из слэйвов взял бы функцию мастера. Для этой цели нашел следующее решение: github.com/fictorial/redis-cluster-monitor. При падении мастера, данная мониторилка выбирает нового мастера и посылает сигнал синхронизации с ним остальным серверам. Задача — уведомить фронтэнды о том, что мастер-сервер сменился. Собираюсь дописать мониторилку, чтобы она еще и слала уведомления и фронтэндам. Адрес мастер-сервера, вероятно будет храниться локально в файле.

На сколько правилен подобный подход? У кого был опыт постоения подобных систем, как обычно поступают, какие подводные камни?

NoSQL   Redis   Кластеры    

429   1   12:05, 22nd August, 2020


Инфраструктура под высокие нагрузки

Добрый день, коллеги. Готовимся к запуску одного проекта, к сожалению, по NDA не могу рассказать что за проект, позже, после старта, напишу пост, но появилась проблема.

К моменту старта мы ожидаем высокие нагрузки и нам немного сложно оценить необходимую инфраструктуру под них. В пике мы ожидаем ~5 млн MySQL запросов в минуту (60% Select / 40% Insert). Запросы по себе довольно простые т.е. без сложных выборок и т.д. Подскажите пожалуйста оборудование, которое все это переварит. Нам предложили 2 8-и гиговых кор 2 дуо под веб и 3 8-и гиговых кор 2 дуо под базу данных.

Заранее спасибо

MySQL   Highload    

350   7   17:27, 9th August, 2020


Как выбрать одним запросом 5 последних записей каждой категории в MySQL?

Здравствуйте.

Допустим у нас есть таблица следующей структуры: id, cid, title.

Может есть какой-нибудь элегантный способ выбрать одним запросом 5 последних записей каждой категории(cid)?

MySQL    

301   6   08:04, 5th August, 2020


MySQL и оперирование с рейтингом игроков

Допустим есть табличка с игроками, где у каждого игрока есть поле «score».

И мы хотим создать общий рейтинг игроков с сортировкой по этому полю.

Вопрос в том, можно ли как-то получить позицию заданного игрока в этом рейтинге? Т.е. есть игрок со score=12 и при сортировке по этому полю он будет в списке всех игроков на 50000-м месте.

Можно как-то определить это самое место легким движением руки?

Или вариант тут только один — раз в N времени выполнять проход по отсортированной таблице и запоминать рейтинги?

Объемы данных планируются от 100 тыс. юзеров до миллиона. Каким вообще образом создаются отсортированные рейтинги при таких больших объемах?

MySQL   Рейтинги    

480   7   09:31, 17th August, 2020


Какие посоветуете средства аудита изменений данных в MSSQL?

Какие посоветуете средства для аудита изменений данных в MSSQL (нужно сохранять изменение всех полей), где связка mssql + NHibernate.

Из того что нашёл, это:

1. Повесить на тригеры в базу данных запись истории в таблицы с историей.

2. В самом NHibernate повесить обработчики в Interceptors или EventListeners и писать в таблицы с историей.

3. Использовать фичу 2008 MSSQL — Change Data Capture. Тут вопрос, стоит ли её для этого использовать, где-то читал «Основной сценарий, в котором предполагается использовать CDC — это „большие“ ETL (extraction, transformation, loading) приложения, которые асинхронно кусками перегоняют данные из OLTP системы в хранилище данных.»

Может есть готовые простые решения.



Как заставить Cogear использовать базы Sqlite?

Возникла необходимости использовать Cogear с Sqlite-базой.

Так как он основан на Codeigniter, который эти базы поддерживает, проблем, как мне кажется, быть не должно.


Куда копать?

PHP   SQLite    

264   2   21:06, 22nd August, 2020


Репликация Redis

Занимаюсь одним стартапом в котором применяем редис, сейчас вплотную стал вопрос о построении отказоустойчивого кластера БД.
Как известно, редис пока поддерживает только master-slave репликацию. Необходимо, чтобы при падении мастера какой-нибудь из слэйвов взял бы функцию мастера. Для этой цели нашел следующее решение: github.com/fictorial/redis-cluster-monitor. При падении мастера, данная мониторилка выбирает нового мастера и посылает сигнал синхронизации с ним остальным серверам. Задача — уведомить фронтэнды о том, что мастер-сервер сменился. Собираюсь дописать мониторилку, чтобы она еще и слала уведомления и фронтэндам. Адрес мастер-сервера, вероятно будет храниться локально в файле.

На сколько правилен подобный подход? У кого был опыт постоения подобных систем, как обычно поступают, какие подводные камни?

NoSQL   Redis   Кластеры    

326   1   06:58, 11th August, 2020


Инфраструктура под высокие нагрузки

Добрый день, коллеги. Готовимся к запуску одного проекта, к сожалению, по NDA не могу рассказать что за проект, позже, после старта, напишу пост, но появилась проблема.

К моменту старта мы ожидаем высокие нагрузки и нам немного сложно оценить необходимую инфраструктуру под них. В пике мы ожидаем ~5 млн MySQL запросов в минуту (60% Select / 40% Insert). Запросы по себе довольно простые т.е. без сложных выборок и т.д. Подскажите пожалуйста оборудование, которое все это переварит. Нам предложили 2 8-и гиговых кор 2 дуо под веб и 3 8-и гиговых кор 2 дуо под базу данных.

Заранее спасибо

MySQL   Highload    

361   7   08:45, 3rd August, 2020


Как выбрать одним запросом 5 последних записей каждой категории в MySQL?

Здравствуйте.

Допустим у нас есть таблица следующей структуры: id, cid, title.

Может есть какой-нибудь элегантный способ выбрать одним запросом 5 последних записей каждой категории(cid)?

MySQL    

399   6   02:28, 20th August, 2020


MySQL и оперирование с рейтингом игроков

Допустим есть табличка с игроками, где у каждого игрока есть поле «score».

И мы хотим создать общий рейтинг игроков с сортировкой по этому полю.

Вопрос в том, можно ли как-то получить позицию заданного игрока в этом рейтинге? Т.е. есть игрок со score=12 и при сортировке по этому полю он будет в списке всех игроков на 50000-м месте.

Можно как-то определить это самое место легким движением руки?

Или вариант тут только один — раз в N времени выполнять проход по отсортированной таблице и запоминать рейтинги?

Объемы данных планируются от 100 тыс. юзеров до миллиона. Каким вообще образом создаются отсортированные рейтинги при таких больших объемах?

MySQL   Рейтинги    

302   7   19:22, 11th August, 2020


Посоветуйте программу для моделирования БД MySQL под Ubuntu

Нужна программа для проектирования БД MySQL с графическим отображением связей и автоматической генерацией кода для создания таблиц.
Есть ли такая под Линукс и какая лучшая, удобная для новичка?

Linux   MySQL   Проектирование   баз   данных    

397   8   16:15, 10th August, 2020


Бекапы версий контента при создании статьи как реализовать? (PHP, MySql)?

К примеру в вордпрессе есть такая фишка
20100917-qcqt-19kb.jpg


То есть на каждую статью приходится несколько версий, сохраненных через некоторый интервал с возможностью отката на каждую из них. Подскажите пожалуйста, как это грамотно реализовать средствами PHP и MySQl! Спасибо

PHP   MySQL   CVS    

310   5   21:35, 1st August, 2020


Как в MS SQL SMS 2008 R2 Express смотреть объекты MS SQL Server 2000 аналогично просмотру их в QA?

К сожалению, SMS 2008 R2 Express отказывается показывать объекты базы SQL 2000, ссылаясь на отсутствие прав на sysusers.

Администратор не горит желанием давать права на select.


Есть ли возможность добавить функционал в среду SMS 2008 для работы с базой SQL 2000 в Object Explorer аналогично стандартному Query Analyzer в комплекте с 2000 версией.


Работаю под Windows 7, что уже приводит к проблемам при самой установке QA (сейчас стоит под виртуальной машиной вместе с VB6). Но, основная причина данного вопроса, что просто удобней в новой среде. Приятным бонусом было бы появление авто подстановки.


Ставил пробную версию программы от Red Gate и все работало прекрасно, стало быть вполне осуществимо, но свободных программных решений не нашел. Заявку руководству составил на покупку продукта, но это только на следующий год и не факт, что одобрят.


Буду благодарен за ответы. Спасибо!

SQL   SQL   Server    

335   2   22:14, 25th August, 2020


Выборка разом топ рубрик и определенного кол-ва топ-наименований по каждой из рубрик

Уважаемые коллеги!
Вот уже несколько дней думаю над запросом.
Есть таблица с рубриками и таблица с наименованиями. У каждой рубрики и наименования есть поле рейтинга.
Делаю выборку наименований с их рубриками.
Задача в том, чтобы выбрать ТОП 3 наименования из ТОП 3 рубрик. Другими словами хочу чтобы результат примерно был таков:

фильмы | аватар | рейтинг рубрики 10 | рейтинг наименования 100 |
фильмы | крестный отец | рейтинг рубрики 10 | рейтинг наименования 90 |
фильмы | звездные войны | рейтинг рубрики 10 | рейтинг наименования 60 |
сериалы | доктор хаус | рейтинг рубрики 8 | рейтинг наименования 200 |
сериалы | тбв | рейтинг рубрики 8 | рейтинг наименования 40 |
сериалы | интерны | рейтинг рубрики 8 | рейтинг наименования 10 |
мультфильмы | жил был пёс | рейтинг рубрики 5 | рейтинг наименования 90 |
мультфильмы | том и джерри | рейтинг рубрики 5 | рейтинг наименования 80 |
мультфильмы | бурума свергли с престола | рейтинг рубрики 5 | рейтинг наименования 66 |

В продакшене, разумеется всех сущностей больше, но суть раскрыта.
Есть ли красивое решение?

MySQL    

284   4   04:35, 28th August, 2020


Как спасти данные после правки конфига MySQL

Поправил конфиги MySQL на VDS. Сразу же обвалились все базы, MySQL ругался на некорректные данные в frm файлах. Прочитал что это нормально, надо было сразу настраивать как нужно, сейчас только дамп-импорт.
Я бы хотел поинтересоваться у знающих как можно восстановить базы без лишних телодвижений? В ручную дампить 30+ баз и импортировать потом обратно както неохота. Есть советы?

MySQL    

371   4   21:06, 1st October, 2020


Транспонирование таблицы SQL

столкнулся с задачей транспонирования таблицы (поворот на 90 градусов).
есть столбцы
A | B | C
1 | 2 | 3
4 | 5 | 6

вывести
A 1 4
B 2 5
C 3 6

в интернетах пишут
«my very strong advice: don't try to do this with SQL»
и пару достаточно «странных» вариантов

Что посоветуете?

MySQL    

733   7   02:46, 23rd August, 2020


Использование SQL Server Express в реальных проектах

Скажите, есть ли смысл использовать SQL Server Express в реальном проекте ( интернет-магазин региональный ) или же это чисто продукт для изучения возможностей платформы?

SQL   Server    

229   2   23:03, 23rd August, 2020


Порекомендуйте SVN сервер. Не очень дорогой, но надежный

По возможности не в Украине.

SVN сервер нужен не лично мне, а фирме на которую я работаю.

Цель найти дешевле чем выделенный сервер.

Потому что держать SVN в Украине (что сейчас и происходит) накладывает свои ограничения. Потому что были случаи конфискации серверов. И при этом останавливалась работа. Нужно исключить данные случае в будущем.

Subversion   SQL   Server    

354   4   11:34, 19th August, 2020


Как автоматически делать бэкапы mysql?

Хочу делать mysql бэкапы некоторых баз данных.
Что-бы автоматически делался бэкап, отправлялся на почтовый ящик и скидывался мне на компьютер.

Как можно реализовать?

У меня vps сервер на фрихе.

MySQL   Резервное   копирование    

313   6   04:02, 29th August, 2020


Как правильно учиться PHP / mySQL?

Я сам учусь программированию на PHP/Mysql, и хочу попросить совета у хабрасообщества.

Вот список литературы что я использую для индивидуальной учёбы:

PHP 5 для чайников (Джанет Валейд)
PHP в подлиннике (Дмитрий Котеров)
PHP полезные приемы ( А.Орлов)
PHP/MySQL для начинающих (Энди Харрис)
MySQL полное руководство. Второе издание (Поль Дюбуа)


Вопрос таков: Я правильные книги выбрал?

Порой читаю книгу и складывается ощущение, что автор писал что бы только продать книгу и получить прибыль.

Разумеется опытный программист понимает все что в книге написано, но где именно так книга в которой чётко объясняют тот или иной сайт, как он устроен, через какие операторы и что работает.

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


Посоветуйте пожалуйста.


Может будет у кого нибудь ссылка на интерактивные видео курсы?

PHP   MySQL   Книги   IT-образование    

366   13   10:08, 9th August, 2020


Как мигрировать базу данных с индексами и внешними ключами с MySQL на HSQLDB?

В базе около 2 миллионов записей, в MySQL все это счастье с индексами занимает около 300 мегабайт.

MySQL   Перенос   данных    

374   1   21:06, 1st October, 2020


Средства синхронизации на удаленных серверах БД

В процессе написания проекта, столкнулись с тем, что многим клиентам требовалось передавать заявки и справочники, и собирать данные по деятельности филиалов. А найти решение удовлетворяющее все условия не удалось. Пришли к мысли писать самим.

Какими средствами пользуетесь, учитывая указанные условия (все или любую их комбинацию)?
1. Сервера удалены на большое расстояние (разные города)
2. Нестабильный/узкий канал интернета (например связь с Камчаткой, или Магаданом)
3. Синхронизация данных в обе стороны (а не только сбор данных или рассылка справочников)

Также интересна для каких серверов БД использовались средства синхронизации.

PS. Вопрос родился из желания написать статью «как мы синхронизировали удаленные данные».



Муки выбора PHP-фреймворка для разработки сайта, ориентированного на мобильных пользователей

Привет,

Возникло желание изобрести велосипед сделать некий весьма ёмкий сайт для мобильных устройств (смартфонов и им подобных) — т.е., html-ный. Есть желание реализовать на PHP, в связи с чем возникает вопрос: каким PHP-фреймворком воспользоваться?

Пожеланий крайне немного:

  • Не заумная документация (можно даже на русском :))
  • Наличие легкого MVC
  • Поддержка (реализация?) i18n
  • Легкий интерфейс к БД (mysql): мне все еще кажется, что зачастую запрос можно написать и руками; еще мне кажется, что у ZF с DBA перемудрили
  • (желательно) Отсутствие излишеств :)


Городить с самого начала — очевидно, потеря времени. Разбираться во всем многообразии — с ума сойти можно. Может, порекомендуете?

Спасибо.

PHP   MySQL   Фреймворки    

398   8   07:54, 28th August, 2020


Как извлечь N случайных неповторяющихся элементов из SET в Redis?

Есть SET c 1000 id, надо выбрать 3 случайных и неповторяющихся.


Решение «в лоб» — 3 раза сделать SRANDMEMBER, но нет гарантии, что не будет повторов.

Можно — контролировать повторы на уровне клиента и крутить цикл SRANDMEMBER до тех пор, пока полученный набор не будет уникальным, но это тоже несколько коряво.


Сортировать по случайной величине (что-то в духе SORT… BY RAND LIMIT 3 INTO… ) Redis не умеет.


В результате SORT… INTO… результирующий список будет типа LIST и сделать несколько раз SPOP оттуда нельзя.


Вдруг кто-то знает элегантный способ?

NoSQL   Redis    

382   2   23:34, 9th August, 2020


Как понять почему тупит MySQL?

Сервер C2Q x 2 8G ram. RAID 5( 3 hdd ), mysql 5.1.26-rc \ Red Hat 4.1.2-14


Когда собирали(два года назад) были молодыми и глупыми, но сервер вообще влезает в свои параметры.


Итак имеем относительно высокую нагрузку на MySQL — 601.90 запросов в секунду, из них апдейты\инсерты — 2%, а ~70% — stmp prepare\execute\close, на долю чистого селекта остается 34.84%


И где-то неделю назад база научилась умирать — создавались кучи процесов которые работали по полчаса.
Странность 1 — ровно через час все чинилось САМО


В общем начались разгребания состояния сервера.

Как один из пунктов этой программы в код движка был добавлен дамп времени выполнения операций в базу обратно в эту базу.

Этот код работал для запросов которые заняли дольше 0.1 сек — slow_log их еще не видит, но это уже тормоза…


В общем тут и пошли странности — самый обычный запрос, который, запусти его ручками, выполняется 0.0001 репортит в базу что он выполнялся 0.5 или даже ДВЕ секунды…

Странность номер два — тормоза идут мелкими сериями, по 5-10 тормознутых запросов, примерно раз в 11 секунд.

И в этот момент, обычно, только несколько таблиц торомозят( тоесть я вижу пачку по сути одинаковых запросов в логе в этот момент)


Так как 99 тормозных запросов приходились на innoDB таблицы были проведены некоторые танцы — включен file_per_table и таблицы из обшей свалки(11Гб) перевелись в свои маленькие файлики( конечный общий размер 4Гб, фрагментация там была дайбоже )


LA сервера, 0.9

утилизация винта — 15-20%


Конфиг тут

Свободная память — есть.

Идей откуда тормоза и что делать — нет


Как вариант — Percona или MariaDB (5.1.6?)

Бонус пак — когда mysql зависает — конекты от него не отваливаются, процесы не завершаются.

Никак кроме как kill -9....

MySQL    

363   9   20:48, 1st August, 2020


Схема хранения изменяющихся данных с историей

Есть около 300 тыс объектов ( например легковых автомобилей) для каждого автомобиля раз в неделю производится замер параметров ( пробег, давление в шинах, количество топлива), параметров будет в районе 20 штук, нужно все это хранить в базе.

В освновном пользователей интерисуют только последние параметры. Но иногда необходимо отвечать на вопросы типа «А как менялось давление в шинах во времени», «А какие параметры менялись на прошлой неделе»

Интуиция говорит, что наверное надо смотреть в сторону mongo, но тех задание явно говорит, что будем использовать Mysql :)

Пока родилось два варианта

1)

Первая таблица (название data)

id| object_name | param1 | param1_is_changed | param1_change_date | param2…

Вторая таблица (название data_history)

id| object_name | param1 | param1_is_changed | param1_change_date | param2… | version | change_date

При каждом изменении любого параметра, предыдущая версия записывается в data_history, у того параметра который изменился ставится влажок is_changed

2) Первая таблица (название data)

id| object_name

Вторая таблица ( хранит только последние значения)

id | object_id | param_name | param_value | date

Третья таблица ( хранит историю значений из второй таблицы)


Сейчас мы отслеживаем около 50 тыс объектов, в неделю происходит около 200 изменений в параметрах. Все параметры числовые, поэтому вопрос избыточности хранения в первом случае волнует только в плане производительности БД, но никак не места на диске. Второй метод вроде хорош, но его не очень просто реализовать используя ORM.

Ваше мнение? как спроектировать DB? как найти компромисс между эффективной БД и удобством написания приложения к ней.

PHP   MySQL   Базы   данных    

414   7   21:54, 23rd August, 2020


Sphinx или Яндекс.Сервер?

Собственно сабж. Текста много(4000 тысячи статей, 8 тысяч названий).

Крутится всё с использованием СУБД mysql на linux 2.6.


Интересует, как у обоих продуктов дела с потреблением памяти и качеством выдачи.

MySQL   Sphinx    

408   4   10:39, 21st August, 2020


Sphinx: поиск только по sql_attr_multi?

А как искать только по фильтру? т.е. что-то типа этого:

$sphinx->SetFilter('tag', array(1,2,3));
$sphinx->Query('*', '*');

SQL   Sphinx    

377   2   20:32, 25th August, 2020


Какова судьба стартапа, организованного вместе с близкими людьми?

Здравствуйте!

Давно мучает вопрос:
«Какова судьба стартапа, организованного вместе с близкими людьми?»

Например: с другом или своей девушкой?

Может быть у кого-то был реальный опыт и может поделиться советами.

P.S. Вопрос был расширен деталями из реальной жизни и создан отдельный топик.

Спасибо!

MySQL   +1   ещё    

449   17   09:52, 11th August, 2020


Mysql update множественное обновление одним запросом

Здравствуйте, заранее извинюсь если кому то этот вопрос покажется детским.

Требуется обновить 5 записей в одной таблице в разных строках.
Тоесть SET filed=1 where id=1, SET filed=2 where id=12, SET filed='0.5' where id=3…

Описал как мог. Буду очень признателен если натолкнете на путь истинный

MySQL    

365   2   14:45, 7th August, 2020


Удаление mysql-binlog'ов?

Можно ли удалить binlog'и без опаски за репликацию БД? Что в этом случае делать с mysql-bin.index?

Заранее спасибо за ответы.

MySQL    

408   3   09:16, 14th August, 2020


Блокировка при транзакции в mysql, как она работает?

У меня есть таблица images с 3-я колонками: id, product_id и cover. В ней, допустим, очень много записей, которые постоянно читаются. Т.е. не хотелось бы чтобы таблица блокировалась.


В таблице есть 100 записей (с product_id=777), у одной из которых cover=1, а у остальных 99-ти cover=0. Тут внезапно я захотел установить признак cover к другой картинке, и обнулить у текущей, и написал запросы:

BEGIN;<br/>
<br/>
# Сначала сбрасываю обложку у товара №777<br/>
UPDATE images SET cover=0 WHERE product_id=777 AND cover=1 LIMIT 1;<br/>
<br/>
# Устанавливаю новую обложку для товара (AND product_id=777 тут для наглядности)<br/>
UPDATE images SET cover=1 WHERE id=5000 AND product_id=777 LIMIT 1;<br/>
<br/>
COMMIT;



Так вот, означает ли, что при такой транзакции заблокируются только все записи товара с product_id=777, а не вся таблица целиком?

MySQL    

319   1   12:35, 28th August, 2020


Отсеивание дублей строк с Mysql?

Здравствуйте,

Встала задача раздублить около 60гб строковых данных. Уникальных среди них около 25-30%

Решили использовать mysql с уникальным индексом для этого.


Вопросы:
1. Уникальным лучше делать поле с самой строкой (1-5 слов) или же оптимальней считать сначала crc32 от этой строки, и уже на хеш вешать уникальный индекс?

2. Можно ли применить некое курстарное подобие партиционирования, но не на уровне таблиц, а на уровне БД?

Например, делить данные по первой букве строки (получим 28 физических баз), и одновременно заполнять только одну из них, тем самым уменьшая потребление RAM?

MySQL    

323   4   04:37, 4th August, 2020


Как выбрать случайную запись из базы MySQL без использования первичного ключа и order by rand()

Возникла такая проблема, есть база данных в которой содержатся пользователи (юзеры установившие приложение вконтакте, если быть точным), в качестве Primary key используестся id пользователя в социальной сети, который можно считать случайным числом. Нужно выбрать из базы одного случайного пользователя. Пользователей в базе много поэтому order by rand() использовать слишком накладно, генерировать случайное число и выбирать запись с таким id тоже не получится, учитывая что id идут не по порядку. Как быть в такой ситуации? И заодно, как быть если нужно несколько случайных пользователей?

MySQL    

421   6   02:59, 28th August, 2020


Поиск MySQL, как?

Здравствуйте.

Есть таблица вида:

ID | COUNT | DATA | DATE | TYPE | IP


Каждый день в базу добавляется около 500 тысяч записей.

Как можно сделать поиск по полю DATA быстрым и сколько времени будет занимать поиск по такой огромной базе через неделю, месяц?

MySQL   Facebook    

438   5   08:02, 3rd August, 2020


Zend Framework, MSSQL 2008 R2, PDO -> insert lastInsertId?

Как получить lastInsertId если делаешь в зенде

$model-&gt;insert(array(<br/>
 'data1' =&gt; $data1,<br/>
 'data2' =&gt; $data2,<br/>
));<br/>


$model->lastInserId(); — не работает…

PHP   Zend   Framework   SQL   Server    

366   2   21:48, 20th August, 2020


Подскажите альтернативу MySql Workbench для Postgresql под linux

Собственно все в заголовке.

PostgreSQL    

393   3   22:56, 9th August, 2020


Организация хранения структуры категорий в реляционной БД?

Задача — организовать хранение некоего каталога, с достаточно разветвлённой структурой (дерево) — пускай это будет каталог продукции интернет-магазина. Для поиска элемента доступен только URI вида "/category/subcategory/another-category/and-one-more-category". Максимальная вложенность порядка 10.


Категории запрашиваются часто, меняются редко, общее количество категорий может быть порядка 100 тыс.


Так же требуется шустрая генерация «хлебных крошек». Причём ссылка на категорию («and-one-more-category») может отличаться от её заголовка («И ещё одна категория»), который используется для вывода на странице.


У меня пока одно предполагаемое решение — «в лоб» — по следам Materialized path:

таблица для категорий имеет следующую структуру


CREATE TABLE categories (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`title` VARCHAR(50) NOT NULL,

`link` VARCHAR(50) NOT NULL,

`path` VARCHAR(1000) NOT NULL,

`title_path` VARCHAR(1000) NOT NULL

)


CREATE INDEX path_indx ON categories (`path`);


`title` — заголовок категории («И ещё одна категория»),

`link` — ссылка категории («and-one-more-category»),

`path` — путь к категории («category/subcategory/another-category/and-one-more-category»),

`title_path` — то же, что и `path`, только содержит заголовки соответствующих категорий — для быстрой генерации «хлебных крошек»


— Привлекает то, что для поиска категории не нужно никаких усилий — просто SELECT… WHERE path LIKE…

— Не пугает даже необходимость перестроения путей в случае перемещения/переименования узлов.

— Пугает избыточность подхода и вероятные размеры таблицы при большом количестве категорий. Насколько это скажется на скорости?

— Так же смущает то, что в качестве ключа для поиска используется такая длинная строка в `path` (хотя я очень сомневаюсь что она когда-либо выйдет за пределы 100 символов)


Может вынести `path` и `title_path` в отдельную таблицу? Так всё равно путь и хлебные крошки для категории требуется практически всегда, так что придётся джойнить…


Смотрю в сторону Full hierarchy, но опять же смущает возможная избыточность в таблице иерархии, тем более учитывая потенциальные количества категорий и уровни вложенности.


Как более оптимально решить задачу?

SQL   Базы   данных   Иерархические   структуры    

380   4   16:08, 9th August, 2020


Вопрос по настройке билдов в TFS 2010

Помогите новичку.

Есть solution, в котором есть web-проект, проект с логикой и проект базы данных. И есть три вопроса по настройке билдов.

1) Как сделать так, что бы при билде на тестовый сервер заменялись ConnectionString в web.config с локальной базы разработчиков на тестовую?
2) Как сделать deploy проекта базы данных при каждом билде?
3) Где вообще можно подробно обо всем этом почитать? Желательно на русском.

Team   Foundation   Server   SQL   Server    

323   1   01:15, 9th August, 2020


Стоит ли использовать Mongo?

Приветствую!

В последнее время все чаще слышу упоминания про NoSQL и MongoDB в частности. Тема меня заинтересовала, но вот пока не могу найти интересующей меня информации, поэтому спрошу здесь — наверняка уже многие успели поэкспериментировать, а может и разработать серьезные высоконагруженные приложения в связке с MongoDB.
Заранее предупрежу, если где-то я ошибся в отношении MongoDB — я не специально. Просто я с ней еще даже не пытался работать, а лишь почитывал статьи на Хабре, да те примеры, что лежат на оф.сайте.

Сейчас я занимаюсь разработкой тизерной сети. Задача, на первый взгляд кажущаяся тривиальной, на деле выходит довольно хитровыделанной в плане организации структуры БД. Огромное кол-во связей, множество таблиц-посредников для связей М-М и т.д… Чем меня привлекла идея MongoDB, так это своим принципом построения связей. Вопрос №1:
действительно ли работа с МонгоБД при наличии кучи связей менее затратна в плане ресурсов? Ну, хотя бы на простейшем примере (буду писать на «псевдо SQL») — выборка из 2 таблиц, связанных отношением М-М через промежуточную таблицу:
table sites(
id int primary key auto_increment,
url varchar
)

table categories(
id int primary key auto_increment,
name varchar
)

table sites_categories(
site_id int,
category_id int
)

Задача вывести список сайтов и категорий, в которых он есть:

SELECT * FROM sites

while(SITE = mysql_result...)
{
//отображаем данные сайта
SELECT * FROM categories WHERE id IN (SELECT category_id FROM sites_categories WHERE site_id = SITE)
//в цикле отображаем категории
}

Также меня интересует, можно ли работать одновременно с MySQL и MongoDB? Вернее, насколько это будет правильно? Полностью переносить БД на Монго не хочется, лишь отдельные, особо-хитрые участки, нагрузка на которых выше, чем хочется.

Также читал, что в MongoDB можно беспроблемно хранить файлы — действительно ли это так и что же будет лучше — хранить по-старинке в специальной папке с подкаталогами по именам/ид пользователей, или использовать MongoDB? (допустим, при таком раскладе: пользователей около 1к, у каждого 40-50 небольших картинок. картинки отдаются в кол-ве примерно 100-150 в минуту.

P.S.: прошу прощения за возможные неточности в вопросах, излишнюю или недосказанную информацию о нуждах и текущем положении дел, разработка структур БД — не мое основное достоинство…

MySQL   NoSQL   MongoDB    

467   6   15:25, 18th August, 2020


Индекс по полю integer в PostgreSQL

Что есть


В оч. большой табличке PostgreSQL создаем поле типа integer + btree индекс по этому полю.
Большинство значений в поле дефолтные.

Что нужно


Выбирать строки с сортировкой по данному полю.

Вопросы

  • Какое дефолтное значение будет работать быстрее NULL или 0?
  • То же самое, касательно character(n), NULL или ''?

PostgreSQL   Базы   данных   Highload    

395   2   07:52, 13th August, 2020


Как удачнее спроектировать базу данных?

делаю небольшой сайтик для нескольких групп в универе. страничка с расписанием, файловый архив, и прочие радости. возник вопрос касательно каждодневного расписания. на страничке каждой группы будет висеть её расписание на завтра (по желанию — на любой день). на данный момент, существует две таблицы, но они пока никак не связаны друг с другом:

subjects (список предметов)
subjId (уникальный номер предмета)
subjName (полное название предмета)

groups (список групп)
groupId (уникальный номер предмета)
subjName (название группы)

необходимо сопоставить каждой отдельно взятой группе список предметов на понедельник\вторник\etc…
знание php и mysql — на начальном уровне. посему, хотел поинтересоваться у гуру, как удачнее спроектировать БД.

MySQL   Проектирование   баз   данных    

349   6   05:21, 5th August, 2020


Как работать с постоянно изменяющейся базой в системе контроля версий?

Используем subversion, MySQL, NetBeans.


Хотелось бы чтобы окромя кода база тоже находилась бы в svn. База проекта обновляется достаточно часто. Как с наименьшими трудозатратами обновлять, фиксировать и т.п. таблицы, процедуры, вьюшки и т.п.?

MySQL   Subversion    

409   6   18:15, 29th August, 2020


Сервер баз данных под Windows Mobile/Android

Как быть если требуют написать оболочку для работы с базой данных размером 1.5Гб без использования инета под Windows Mobile / Android?
Может есть SQL-подобные решения для этих платформ?

Android   SQL   Базы   данных   Windows   Mobile    

262   1   21:06, 1st October, 2020


Как сортировать внутри GROUP BY?

Сортировка внутри GROUP BY


CREATE TABLE `oper` (

`id_num` int(10) unsigned NOT NULL auto_increment,

`id_country` int(10) unsigned NOT NULL,

`cost` decimal(4,2) unsigned NOT NULL default '0.00',

PRIMARY KEY (`id_num`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

id_num id_country cost

1 1 1

2 1 2

3 1 3

4 1 4

5 2 5

6 2 6

7 2 7

8 2 8


надо выбрать самые дорогие номера по странам и их ид

select id_num, id_country, max(cost) from oper group by id_country

выдает вот такую штуку

id_num id_country max(cost)

1 1 4

5 2 8


тоесть цены выбирает верные, но ид номера никак не соответствует ценнику, должно быть так

id_num id_country max(cost)

4 1 4

8 2 8

MySQL    

320   7   15:33, 12th August, 2020


VoIP Ubuntu автодозвон

Хочу реализовать «сервис» будильника — чтобы в назначенное время ubuntu звонила через voip на мобильные телефон.

Есть какие-нибудь идеи?

MySQL   +2   ещё    

408   2   21:06, 1st October, 2020


MYSQL. Удалить дубли строк?

Есть таблика с 100.000 строк.

Нужно удалить дубли строк(именно строк а не ячеек)

то есть чтобы от таблицы:

c1 c2

1 2

1 0

4 2

1 0

1 1

2 1


Осталось:

c1 c2

1 2

1 0

4 2

1 1

2 1


Одну строчку (1 0) нужно удалить так как из было 2.

Можно ли это сделать запросом или без php не обойтись?

Спасибо.

MySQL    

313   9   00:38, 25th August, 2020


Какую редакцию mssql сервера выбрать?

До этого не задавался вопросами лицензирования софта (все ОС предустановленные шли). Теперь надо поставить mssql сервер. Условия такие: 40-50 одновременных подключений, объемная БД, частые запросы. Думаю между MSSQL 2005 Standart и Workgroup. Какую лучше выбрать, сколько стоят и где можно приобрести?

SQL   SQL   Server    

243   3   02:29, 1st August, 2020


Требуется помощь по составлению запроса Mysql

Есть таблица со статистикой в ней 3 поля (id, time, user_id)

Помогите собрать один запрос, чтобы выбирать COUNT(id) WHERE time (разбит по часам) за последние 7 дней с группировкой по user_id. Просто у меня получается жуткая портянка с кучей вложенных запросов, может есть более грамотное решение

MySQL    

342   1   02:17, 27th August, 2020


Как синхронизировать версию базы данных MySQL и кода веб-приложения при разработке?

Исходные данные:
1) веб-приложение на php (ну да это не важно на каком языке), лежащее в git (ну или другой CVS)
2) база данных MySQL
3) Весь SQL-код хранится в БД в виде хранимых процедур.

Как поддерживать синхронизацию кода приложения и структуру БД и хранимые процедуры?
С процедурами дело конечно обстоит проще — можно каждую процедуру положить в отдельный файл, который отслеживается в git (ну или другой CVS)
А вот как быть со структурой таблиц? Генерить ручками при каждом изменении ALTER TABLE и класть их в отдельные файлы — трудоемко.
Может есть какие-то утилиты, которые позволяют делать это автоматически, а-ля Oracle Database Version Control?
Хочется иметь возможность при обновлении версии приложения — выполнить один sql-скрипт, который обновит базу данных. Если конечно такое возможно.

MySQL   Git   CVS   Subversion    

350   5   01:11, 5th August, 2020


Полный SQL-дамп для IBM DB2?

По работе пришлось столкнуться с творчеством ibm, а именно — db2 9.7…

Вопрос следующего характера: как сделать полный дамп базы в db2, включая структуру, данные, процедуры и прочую логику? как свалить это все в файл, аналогичный по структуре дампу MySQL? db2look сохраняет только структуру, насколько я понял.

И, возможно, кому-то уже приходилось конвертировать базы между mysql и db2, какой продукт стоит для этого использовать и насколько это работоспособно?

MySQL   SQL   Резервное   копирование   IBM   Db2    

407   1   12:10, 22nd August, 2020


MySQL+ выполнение внешних команд при определенных событиях, возможно?

Если вкратце есть комерческий пхп-скрипт в код которого вмешатся нельзя(zend), но нужно добавить небольшой функционал. Вот возникла идея написать скрипт( на питоне например) добавляющий нужный функционал и запускать его когда основной скрипт вносит данные в БД. Потому и возник вопрос возможно ли в mysql повесить выполнение команды на insert/update в определенную таблицу, в идеале с передачей некоторых значений из добавленных данных в качестве параметров скрипту?

В бд будут добавлятся записи с определенным описанием контента в папках фс и линк на эти папки, скрипт же должен создавать определенный файл-отчет на основании контента папки и сохранять его в корне этой папки.

Ну и доп вопрос — сколько примерно такая доработка может стоить?

MySQL    

302   3   19:44, 1st August, 2020


Поменять местами 2 строки в таблице mysql

Всем привет!

Есть таблица, например, с полями Id (int auto_increment) Name

Как с помощью sql запроса поменять местами Id у двух строк?

ЗЫ Хороших выходных :)

PHP   MySQL    

791   10   18:55, 12th August, 2020


C# + sqlite, несколько вопросов

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

Но так как язык для меня новый сразу возникли некоторые вопросы. Какие-то решил с помощью гугля, а вот с базой данных возникла проблема.

Подключаю sqlite через ADO.NET (http://sqlite.phxsoftware.com/)
Через VS создаю таблицу users, заливаю туда какую-то инфу чтобы её вывести.
На форму кидаю элемент GridView.
Затем пользуясь этим руководством, пишу:

private void Form1_Load(object sender, EventArgs e)

{

            SQLiteConnection ObjConnection = new SQLiteConnection("Data Source=data/database.db3;");

            SQLiteCommand ObjCommand = new SQLiteCommand("SELECT * FROM users", ObjConnection);

            ObjCommand.CommandType = CommandType.Text;

            SQLiteDataAdapter ObjDataAdapter = new SQLiteDataAdapter(ObjCommand);

            DataSet dataSet = new DataSet();

            ObjDataAdapter.Fill(dataSet, "users");

            dataGridView1.DataSource = dataSet.Tables["users"];

        }


И всё отлично работает, при загрузке программы появляются данные из базы. Но дело не в этом. Я хочу провести небольшой рефакторинг:

— Нужно устанавливать связь с базой данных при открытии программы. Как я понял, за это отвечает первая строка (ObjConnection = new SQLiteConnection). Куда это лучше перенести?
— Где и как лучше хранить это соединение с базой, чтобы я всегда смог получить к нему доступ (что-то типа глобальной переменной)?
— Как мне сделать запрос, который вытащит одну строку, чтобы в дальнейшем с ней работать? Нужно что-то типа ObjConnection.query(«SELECT login FROM users WHERE id = 1»)
— В панели элементов появилась вкладка SQLite с элементами Connection, DataAdapter, Command — для чего они нужны? Чтобы визуально настроить базу через них, не прописывая это в коде?

SQLite   C#    

379   1   03:30, 8th August, 2020


Выбрать значения которых нет в таблице

Здравствуйте.

В таблице значения колонки item_id состоят из номеров 1, 2, 3, 4. У меня есть список из чисел 2, 3, 5. Нужен такой запрос который вернёт только 5, то есть значения которого нет в таблице но есть в запросе.

Не пойму как это сделать такой запрос?
Понятно когда данные в двух таблицах, но когда список в запросе запрос становится не очевидно.

MySQL    

375   6   11:00, 27th August, 2020


Запрос на обновление с условием?

Добрый день!


Люди добрые подскажите как в mysql возможно запрос на обновление с условием написать?

Например, если в поле 1 то заменяем его на 2, если 2 то заменяем на его 1.


В поле находится буква «b» и «пусто», мне надо так скажем поменять местами, т.е. букву b заменить на «пусто», а «пусто» заменить на «b».

MySQL   Базы   данных    

344   4   09:53, 2nd August, 2020


Sphinx и связанные таблицы

СУБД MySQL.
Есть 2 таблички: компании (company) и адреса (adress).
Связаны между собой отношением один ко многим. — т.е. у одной компании может быть несколько адресов.

У каждого адреса есть координаты: x, y (хранятся как float).

Хочу найти компании, адреса, которых находятся в некой прямоугольной области (то есть необходимо, чтобы x и y находились в заданном диапазоне).

Также необходимы некоторые ограничения на компании (с ними разобрался), поэтому использую для индекса табличку именно с компаниями, а не адресами.

Вот чего точно не получится:
— sql_attr_multi не поможет — он умеет работать только с типами uint, timestamp
— sql_joined_field работает только с текстом.

Остается только отсекать у x,y 3-4 знака и переводить их в integer, а затем использовать sql_attr_multi — но этого очень не хочется делать.

Однако, может есть какой-нибудь альтернативный путь? Со sphinx знаком всего 1 день, поэтому всех его возможностей не знаю.

MySQL   SQL   Sphinx    

269   1   08:54, 9th August, 2020


PHP, MySQL. антиповтор

Суть такая:
Есть база в которую заносится например имя автора (пользователем).
Пользователь может ввести: Пушкин, Пушкин Александр, Александр Сергеевич Пушкин, Пушкин А С, А С Пушкин (ну вы поняли. Как с этим грамотнее бороться? Чтоб не было как в VK и подобных.

PHP   MySQL    

404   5   02:40, 26th August, 2020


Opensource база данных ScalaxyDB

Здравствуйте!

Есть ли здесь с++ разработчик, которые хотели бы присоединиться к opensource проекту нереляционной самобалансирующейся p2p базе данных ScalaxyDB?

Исходники: github.com/miolini/scalaxydb
Google Group: groups.google.com/group/scalaxydb

NoSQL   Open   Source    

310   1   19:51, 11th August, 2020


Способ хранения файлов: MySQL, NoSql или что-нибудь еще?

Здравствуйте.

Продумываю систему и встали следующие задачи. Необходимо:
1. Хранить около миллиона html фалов
2. Столько же текстовых файлов
3. zip, pdf файлы
4. Необходим поиск по текстовым и html файлам

Если это имеет значение, то имею некоторый опыт по использованию связки mysql+sphinx.
Масштабируемость нужна примерно до 10 миллионов html и столько же текстовых файлов.

Какие решения можете посоветовать?
1. Где и как лучше хранить html и txt файлы?
2. Где и как лучше хранить архивы и pdf?
3. Как хранят данные, к примеру, поисковые системы? Где почитать?

MySQL   NoSQL    

340   1   15:20, 1st August, 2020


MySQL vs PostgreSQL?

Кратко о проекте:
— выборка по большому количеству условий
— много инсертов
— высокие нагрузки
— без права на ошибку

MySQL или PostgreSQL?
Комплексное решение?
Другие варианты?
NoSQL?

MySQL   PostgreSQL    

329   15   21:06, 1st October, 2020


Проблемы с WordPress MU

Всем добрый вечер!

Недавно пробовал запустить на сервере WordPress MU, т.е. мультисайтовый вариант этой CMS. Первый день полет шел нормально, но потом начались проблемы. Сервер выпадал в глубокие задумчивости когда я обращался к чему-либо. Судя по всему мультисайтинг создавал кучу запросов к БД и накапливая их пытался повесить сервак.
Кто-то сталкивался? Может решал как-то? Заранее спасибо.

MySQL   +1   ещё    

390   1   05:51, 26th August, 2020


apache2, mysql и автозапуск(Ubuntu 10.04)

Ubuntu 10.04
LAMP ставил еще на ubuntu 9.10, но когда обновился до 10.04 апач, мускул исчезли из автозапуска. Некоторое время я не обращал внимания и запускал их командой:
sudo /etc/init.d/apache2 start
ну mysql соответственно.
Решил сегодня все-таки поиграться с ними и как-то вернуть автозапуск, гуглил но так ничего и не вышло, про upstart вообще не понятно
Потом решил удалить полностью LAMP и вместе с ними удалил эти скрипты apache2 и mysql в /etc/init.d, непонятно зачем я это сделал… Поставил заново по этой хавту forum.ubuntu.ru/index.php?topic=25668.0 LAMP, но опять в автозапуск у меня ничего не прописалось, и без тех скриптов которые были в /etc/init.d я теперь даже запустить апач не могу( Что делать? Как вернуть эти скрипты и прописать апач с мускулом в автозапуск. Надеюсь вы мне не будете советовать все это дело воткнуть в «Запускаемые приложения» :)

MySQL   Apache    

345   3   21:08, 14th August, 2020


Будет ли биться MyISAM при синхронизации?

Сейчас синхронизирую базы с удаленные серваком останавливая мускул и запуская rsync. Но базы растут и с ними растет и время простоя.
Вопрос в том насколько велика вероятность получить битые таблицы если не останавливать мускул на период синхронизации? А если сначала сделать LOCK TABLES? А потом еще прогонять проверку. Из активности в база на 99% SELECT-ы.

PS. Я прекрасно знаю про дампы и про репликацию и активно их использую, но в данном случае это неоправданно сложно.

MySQL   rsync    

250   4   08:52, 2nd August, 2020


Утилита для бекапов под linux

Разыскивается утилита для выполнения бекапов сайтов на локальную машину под linux.
Требования:
  • Работа по ssh на опциоанльном порту
  • Наличие шедулера
  • Желательно наличие гуи

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



SELECT в MySQL и PostgreSQL

Добрый день, недавно надумал пользоваться PostgreSQL и заметил одну особенность, SELECT в Postres регистрочувствителен. Если раньше в MySQL я хотел получить запись testTest и запрашивал его как угодно, оно отдавалась, то теперь это не получается. Можно ли как-то строить запрос в Postgres, чтоб он был не регистрозависимым?

PostgreSQL    

384   6   20:59, 14th August, 2020


MSSQL и php.ini mssql.textlimit

Ситуация такая:
в базе лежат картинки в base64 в поле типа text
при получении поля из пхп обычным запросом — поле с картинкой обрезается до 4096 байтов.
Как получить поле нормальной длинны?
Установил в php.ini

mssql.textlimit = 2147483647
mssql.textsize = 2147483647

— не помогает…
Еще находил такое решение:

$q = $db->query ('SET TEXTSIZE 2147483647');
$q->fetchAll();
ini_set ('mssql.textlimit' , '2147483647');
ini_set ('mssql.textsize' , '2147483647');
$q = $db->query("select CONVERT(TEXT, img) from [shop].[dbo].[news_image] WHERE id = $id");
$res = $q->fetchAll();


— результат тот же — возвращается только 4096 байт, т.е. нач. часть картинки.

Сталкивался ли кто нибудь с таким и как решал?
Сейчас решено хранимой процедурой которая собирает все в темповую таблицу и возвращает, а потом скрипт склеивает строки — ну это решения мягко говоря мне не очень импонирует :)

PHP   SQL   Server    

354   2   04:18, 27th August, 2020


Вопросы по sqlalchemy

1. Можно ли с помощью sqlalchemy получить названия столбцов БД и как-нибудь динамически ими оперировать (не задавая их непосредственно в классе, который мапится)

2. Как, собственно, создавать/удалять/редактировать столбцы

3. Есть у меня записи и тэги со связью многие-ко-многим через третью таблицу, например, как здесь. Как правильно написать класс для таблицы связей с учётом того, что там нет первичного ключа?

Python   SQL    

478   4   05:19, 24th August, 2020


MySQL — Синхронизация нескольких потоков

Имеется задача: вставить N элементов в таблицу, но перед этим удостовериться, не добавлены ли уже такие элементы.

Т.е. сначала делаем что-то вроде:

SELECT COUNT(*) FROM xxx WHERE x IN (x1,x2,x3,x4,x5,x6…… x1000);

Если результат равен 0, то значит можно делать такой же массовый INSERT.

Но есть проблема — как сделать это секурно при многопоточности?

Т.е., допустим, как избежать ситуации, когда одновременно получаются 2 потока и порядок действий получается таким:

П1: SELECT COUNT(*) — получает «0»
П2: SELECT COUNT(*) — получает «0»
П1: делает INSERT
П2: т.к. получил «ноль» в предыдущем селекте, тоже делает INSERT дублирующих записей

Есть ли решение для такой задачи?

Идея выставлять какой-то глобальный флаг кажется очень кривой и глупой.

Хранимки не предлагайте, т.к. опять-таки — они не спасут от одновременности. Как вообще такие вещи делаются?

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

MySQL   Многопоточность    

362   6   06:37, 26th August, 2020


Визуальный редактор БД Postgree?

Народ посоветуйте, есть ли какая софтинка, для визуального проектирования БД (создание таблиц, связей между ними и тп) и потом чтобы по визуальной модели сгенерить БД Postgree (если будет возможность других форматов — просто супер будет). ОС не важна, главное визуальность и удобство проектирования БД

PostgreSQL    

344   3   13:11, 15th August, 2020


Чат на PHP: узкое место БД — как решить?

Есть задача организовать простой чат с веб-интерфейсом и полной историей на действующем сайте на самописном движке (PHP5.3.3/MySQL5.1). Гугление по существующим решениям ничего хорошего не дало, либо избыточно, либо производит ощущение «наколенной поделки» и чаще всего давно не поддерживается, да и хотелось бы иметь одну архитектуру и стиль кодирования. В общем принято решение реализовать самостоятельно. С кодированием особых проблем нет, прототип реализовали, но нагрузочное тестирование с разными вариантами индексов и таблиц показало, что при уже ~20 хостах «читателей» и одним «писателем» в секунду MySQL затыкается (VDS c 1Гб RAM, мускулу половина отдана, и 2ГГц проц, nginx+php-frpm под Debian) даже на денормализованной таблице, т. к. кэшированию средствами БД запросы не поддаются (фильтры у каждого «читателя» свои, ибо приват, фильтрация в серверном приложении вряд ли будет эффективней чем в БД, как мне кажется, а у клиента недопустима). А хотелось бы на этом «железе» хотя бы 40-50 держать помимо основной нагрузки. Что может помочь? Опыта «хайлоад» нет, возникли такие идеи:

— написать демона для чата на субдомене, чтобы читал в основном потоке из БД только при старте (последние N сообщений) или редких специфичных запросах, хранил их у себя в памяти процесса (убивая старые), а писал в БД только «логи» для следующего старта (тогда фильтрация будет эффективна, имхо, плюс её можно будет осуществлять опережающе и инкрементно, храня сами сообщения в едином пуле, а для каждого читателя добавлять в список ссылок на «его» сообщения при поступлении сообщения от «писателя» лично для него или публичного, и удалять их оттуда при прочтении)

— аналогичным образом задействовать мемкэш (хотя пока с трудом представляю как обеспечить целостность, до того только с файловыми кэшами работал, которые сами не «испаряются») для обычного PHP-обработчика (то есть чтобы куча воркеров имела доступ к общему пулу сообщений и инкрементным личным спискам ссылок на них между запросами)

— перевести чат на NoSQL СУБД (какую? главная задача эффективная фильтрация по паре полей последних записей, типа WHERE timestamp > {last_time} (или id>{last_id}) AND (recipient_id IS NULL OR recipient_id={user_id}) ORDER BY timestamp (или id) DESC LIMIT {max_records} )

Что стоит попробовать или ещё какие могут быть варианты? Демона писать не хочется, так как усложнит администрирование и сервера, и собственно чата (аналог IRC команд делать?), опыта работы с кэшем и NoSQL практически нет.

PHP   NoSQL   Базы   данных   Чаты   Memcached    

444   15   14:51, 21st August, 2020


Выборка записей из базы по списку меток, заданных в другой таблице?

В MySQL есть таблица с записями, так же в отдельной таблице лежат «id записи» — «id тега», которые обозначают, какие теги имеет обозначенная запись.

Необходимо выбрать записи по заданным пользователем тегам. При этом тегов в запросе может быть несколько и в таком случае выбираются все записи, содержащие хотя бы один из перечисленных в запросе тегов.


Вариант, при котором для каждой метки создается отдельное поле в таблице записи не подходит, т.к. при необходимости требуется добавить новую метку без изменений в коде sql-запроса.


Подскажите, каким sql-запросом сделать такую выборку?

SQL   Метаданные    

370   3   14:36, 13th August, 2020


Небольшой вопрос по SQL

Приветствую всех! Есть небольшой вопрос к понимающим SQL:

Предположим, есть у нас в базе компании и продукты. Компаний много, продуктов еще больше.
Каждый продукт сопровождается датой его занесения в базу, причём продукты «скоропортящиеся», т.е. по прошествии N дней продукт уже неактуален.

Требуется получить табличку вида (имя компании, кол-во актуальных продуктов).

Итак, представим, что у нас есть следующие таблички:

companies (id, name);
products (id,name,id_company,data)


Сначала всё работало через два запроса: один брал по очереди каждую компанию, другой проходил по таблице продуктов, находя актуальные и подсчитывая их.
Как известно, выполнение запроса в цикле — худшее из зол, к тому же обе таблички оказались весьма и весьма большими, поэтому такое решение не годится из соображений производительности.

Для повышения быстродействия попробовал использовать левое внешнее соединение таблиц,
дабы иметь в выводе и те компании, у которых есть товары, и те, у которых их нет.

Приблизительно получаем такой запрос:

select c.name, count( p.id ) as cnt
from company c left join products p on c.id = p.id_company
where to_days(now()) - to_days(p.data) <= 10
group by c.id


Запрос работает быстро, но неверно: из-за условия не выводит те компании, у которых продуктов нет вообще.

Дальше, в силу усталости и ограниченности знаний SQL, голова пока не думает, взываю к вашей помощи…
Реально ли вообще выкрутиться в такой ситуации одним запросом?

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

SQL    

246   8   21:15, 8th August, 2020


Можно ли получить номер определенной строки при сортировке в MySQL

Пример: у меня есть N пользователей с экспой от 0 до M.
Пользователи отсортированы по убыванию, от M до 0. Можно ли получить номер пользователя с id в этом списке?
Сейчас использую для этого REDIS.ZSET, но было бы интересно узнать решение на MySQL.

MySQL   Redis    

330   4   15:10, 7th August, 2020


[SQL] Проверить, лежит ли один диапазон дат в другом

Добрый день.
Помогите, пожалуйста, составить SQL-запрос.

Есть две даты.
Нужно проверить, что интервал между этими данными не попадает в интервал дат в таблице БД. А также, что интервал дат в таблице не попадает в интервал между данными датами.

SQL    

467   4   18:54, 14th August, 2020


Проблемы с MySQL MyISAM — дублирование записей и крэш больших таблиц

Совершенно внезапно на рабочем проекте стали твориться непонятные вещи:
  • отваливаются две самые большие таблицы — одна на гигабайт и порядка 70 миллионов записей, другая на 500 мегабайт и 700 000 записей. Примерно 100-1000 инсертов в секунду в первую и 2-5 во вторую. Из второй данные активно select'ятся
  • периодически по неизвестным причинам база начинает выдавать ошибку too many connections. Скрипты оптимизированы, один скрипт — один экземпляр соединения (класс БД — «одиночка»)
  • сегодня ни с того ни с сего данные начали дублироваться, один запрос проходил от двух до 13 раз. Причем не один какой-то запрос, а сразу несколько, которые идут друг за другом.
Скрипты проверил, всё в порядке, давно ничего не менялась, проект со средней посещаемостью. Никаких всплесков за сегодня нет.
Сервер выделенный, настройки стандартные, ОС — CentOS. Версия MySQL — 5.0.77

В чем может быть причина? Я с подобным никогда не сталкивался, никак не могу понять, что происходит.

PHP   MySQL   SQL   Базы   данных    

301   5   03:07, 13th August, 2020


Посоветуйте базу данных (pure Java, Schema less, embedded, in memory)

Посоветуйте пожалуйста: pure Java, Schema less, embedded, in memory базу данных.
Чтобы использовать как кэш с возможностью поиска по свойствам объектов.

Ну или иные варианты как организовать такой кэш :)

Спасибо!

Java   NoSQL   Базы   данных    

399   6   04:36, 12th August, 2020


Как переконвертировать mdf в sdf? (ms sql server to ms sql server ce)?

Есть база данных в СУБД MS SQL Server.

Подскажите наиболее простой способ получить из неё бд в формате sdf (MS SQL Server Compact Edition).

Конвертация   данных   SQL   Server    

320   2   19:00, 22nd August, 2020


Схема таблиц, как организовать рейтинг с плюсами/минусами?

Необходимо сделать рейтинг постов/комментов, как на Хабре.

Имею в виду плюсы и минусы и то, что нельзя головать больше одного раза.


Как организовать схему таблиц в MySQL? Сейчас рейтинг хранится в поле rating у самой записи, но так посетитель может голосовать больше одного раза.

MySQL    

277   2   13:25, 5th August, 2020


Postfix и отображаемое имя пользователя

Здравствуйте дамы и господа.

Имеется почтовик на базе postfix+dovecot, с прикрученным mysql и вот какой момент меня несколько расстраивает — отображаемое имя пользователя при отправке сообщения.

При использовании почтового клиента всё просто — отображаемое имя задаётся при создании учётки и всё хорошо, а если этому же пользователю нужно вдруг отправить письмо через web-интерфейс — нужно его отдельно указать в настройках web-интерфейса, что не удобно и как то не правильно, ведь учётки почти создаются при помощи postfixadmin и там же при создании задаётся имя пользователя. Вопрос: можно ли как то использовать по-умолчанию имя пользователя, присвоенное при создании в postfixadmin? ну или хотя бы использовать его если не указано никакого имени, ведь все эти данные доступны из БД.

MySQL   Postfix   Postfix   Admin    

409   1   18:15, 16th August, 2020


SQL запрос на выборку текущих атрибутов сущности из таблицы журнального типа

Имеется таблица, где хранятся атрибуты сущностей, например идентификатор товара, его цена и дата последнего апдейта. При добавлении новой цены в таблицу вставляется строка ('id-товара', 'новая цена', 'время добавления'). Как получить выборку с актуальными ценами для всех товаров?

SQL    

348   2   12:49, 23rd August, 2020


Переезд Microsoft Project Server с одного сервера на другой

Всем здравствуйте.

Возникла необходимость перенести один из серверов с Microsoft Project Server 2007 с одной железки на другую.
А так как раньше я раньше настроек проджекта и не видел, то встал вопрос: «Как данную тему можно можно по быстрому провести?»

Вообще идея такая: забекапить базу данных Project Server на старом сервере.
Затем инсталлировать инстанс Прожекта на новом сервере и затем подменить новую базу данных на ту которую разверну из бэкапа со старого сервера.
Правда у меня есть сомнения, что такой вариант прокатит, но всё же.

Тут задумался, может есть какой-нибудь инструмент предназначенный специально для переезда, это же достаточно распространенная проблема.

Ещё возник вопрос? А вообще в обязательном порядке нужен Шерпоинт ставить на той же машине?

В общем прошу помощи у сообщества, так как ни времени ни возможности проводить эксперименты на данный момент нет :(

SQL   Server    

366   1   22:55, 5th August, 2020


составить SQL запрос

База данных mysql.

таблица, с такими данными (упрощено):

id____ project_id_____year
1________1____________2010
2________1____________2008
3________1____________2009
4________2____________2007
5________2____________2009


Хотелось бы получить вот такой результат:
(данные сгруппированы по project_id и взята строка где year — минимальный)

id________project_id_____year
2____________1___________2008
4____________2___________2007

MySQL   SQL    

295   3   18:19, 5th August, 2020


Модуль прозрачного кеширования mysql запросов в memcached

Существует ли сабж, как модуль perl?
Хотелось бы делать запросы, не думая, что есть фронтенд в виде memcached, и бэкенд в виде mysql.

Perl   MySQL   Memcached    

298   3   13:41, 19th August, 2020


Теория: структура высоконагруженного сервиса?

Хотелось бы от хабралюдей узнать в чем мои суждения неверны. Итак, приступим-с.

Задача: построить сервис, с возможностью горизонтального масштабирования, который в будущем теоретически будет высоконагруженным.

Каковы мои размышления на тему, вопросы по каждому пункту прямо в нем:

— имеется домен (имя взято с потолка) hls.com

— у регистратора у этого домена прописано максимальное количество DNS серверов (6?), которые собственные и разбросаны по миру (имеет ли это смысл?)

— DNS зона содержит в себе максимальное количество A и AAAA записей (32?) дабы получить DNS round-robin.

— На каждом адресе, указанном в DNS, висит load-balancer (аппаратный или же софтовый? как load-balancer определяет какой сервер выдать, как он определяет самый менее нагруженный сервер?)

— Каждый load-balancer заведует неким количеством ngnix-серверов (или какой-то другой софт, если да, то какой? как ngnix может выбрать сервер самый менее нагруженный?)

— ngnix-сервер заведует неким количеством web-серверов, которые собственно дают контент.

— Каждый web-сервер имеет на машине Apache HTTP, PHP или Ruby и локальный memcached (или локальный не стоит?)

— За web-серверами стоят 2 вида баз данных — там где хранятся связи между объектами и собственно сами объекты. Все из них по условию должны уметь масштабироваться горизонтально.

— В качестве распределенного хранилища объектов используем что-то вроде memcacheDB или BigTable (или какую-то другую? т.е. у каждого объекта есть уникальный ключ, несущий в себе не только ID объекта как таковой но и информацию о типе объекта)

— В качестве распределенного хранилища связей нужно использовать какую-то БД на основе графа (правильно? если да, то какую?)

— Имеется также 2 набора memcached серверов которые кешируют запросы к обоим видам БД.


Хабралюди, мыслю ли я в правильном направлении? Что я не учел? Где почитать? Кто уже делал? Помогите просветлиться в этом.

NoSQL   Highload   Memcached    

286   9   02:01, 5th August, 2020


Mssql динамические where внутри хранимой процедуры?

Привет mssql монстры и монстрики = )

Ситуация такая: есть толстая хранимая процедура, там несколько временных таблиц и вообще всего. В конце процедуры создается таблица с результирующими нужными данными

DECLARE @search table ( .... )<br/>
INSERT INTO @search (...) select ... union select ....<br/>


Передаю в хранимку параметр @where [varchar](500)


сам параметр выглядит примерно так:
SET @where = 'SELECT * FROM @search WHERE id &gt; 0 AND name like ''%apple%'''



и в конце процедуры я пытаюсь сделать так:

EXEC(@words)


НО, как известно, exec создает свой контекст и код не видит врем. таблицу Demian Smith.

Вопрос — можно ли сделать так чтоб увидеть эту таблицу(@search) внутри exec?

Как можно выбрать из этой хранимки то что надо? (если попытаться сделать внешнюю временную таблицу и в нее сделать
INSERT INTO @newTemp exec [dbo].[search_proc] — выдает ошибку о вложенных exec. (в процедуре этой самой уже есть выполнение и вставка их в таблицы — временные)

Хранимые   процедуры   SQL   Server    

291   1   10:54, 4th August, 2020


Как временно отключить триггеры в mysql 5.0?

Нагуглил вариации на тему

SET @DISABLE_TRIGER = 1;<br/>
SET @DISABLE_TRIGERS = 1;<br/>
SET @DISABLE_TRIGGER = 1;<br/>
SET @DISABLE_TRIGGERS = 1;



Однако они не работают.


Подскажите — есть ли решение у этой задачи?

MySQL    

407   1   12:19, 29th August, 2020


SSH server with SSH forwarding на Windows x64?

Привет всем.


Нужно запустить на Windows Server 2008 R2 x64 SSH сервер с поддержкой форвардинга.


Насколько я слышал, OpenSSH на x64 версии не работает.


Есть ли free альтернативы?

SSH   SQL   Server    

315   1   09:12, 26th August, 2020


Работа с MyISAM таблицей с кол-вом записей от 10'000'000?

Есть таблица, где хранятся записи о товарах, всего товарах около 10'000'000 — количество может вырасти до 20'000'000.

Вывод работает нормально, но заказчик хочет еще админку к этой базе для анализа товаров, поставщиков и прочего — это будет выглядеть как фильтры для каждого поля бд.


Запрос на создание таблицы:
CREATE TABLE `suppliers_store` (<br/>
 `id_suppliers_store` int(11) NOT NULL AUTO_INCREMENT,<br/>
 `id_suppliers` int(11) NOT NULL,<br/>
 `dt` date NOT NULL,<br/>
 `name` varchar(255) NOT NULL,<br/>
 `code` varchar(255) NOT NULL,<br/>
 `price` double NOT NULL,<br/>
 `code_suppliers` varchar(255) NOT NULL,<br/>
 `count` int(11) NOT NULL DEFAULT '0',<br/>
 `producer` varchar(255) NOT NULL,<br/>
 `weight` varchar(255) NOT NULL,<br/>
 PRIMARY KEY (`id_suppliers_store`),<br/>
 KEY `NewIndex1` (`id_suppliers`),<br/>
 KEY `NewIndex2` (`dt`)<br/>
) ENGINE=MyISAM DEFAULT CHARSET=utf8



Вот примерный запрос, с условиями, которые может сгенерировать фильтр:
select ss.*, s.delivery<br/>
from suppliers_store as ss<br/>
join suppliers as s on ss.id_suppliers = s.id_suppliers<br/>
where (ss.dt &gt;= '2010-02-01 00:00:00' and ss.dt &lt;= '2011-02-01 23:59:59') and <br/>
 (ss.name like '%панель%' or ss.code like '%панель%') and<br/>
 (ss.price &gt; 1000) and<br/>
 (ss.count &gt; 0)<br/>
LIMIT 50



Собственно эти фильтры и заставляют mysql каждый раз шерстить всю базу, индексы по полям, как я понимаю, особо не помогут.


Раньше опыта работы с такими объемами не было, насколько mysql подходит для этих целей?

Как можно увеличить скорость поиска по табличке?

MySQL    

294   6   05:25, 24th August, 2020


mysql_real_escape_string vs mysql_escape_string

Согласно документации, стоит использовать только функцию mysql_real_escape_string.
Насколько я понимаю, это связано в основном с применением юникода и действительно оправдано.

Вопрос: насколько часто ошибается mysql_escape_string и можно ли в языках с нативной поддержкой юникода пользовать своей реализацией вроде:
/**
 * Escape string for mysql. Don't use native function,
 * because it doesn't work without connect.
 */
exports.escapeStr = function(str) {
    return str.replace(/[\\"']/g, "\\$&").replace(/[\n]/g, "\\n")
                .replace(/[\r]/g, "\\r").replace(/\x00/g, "\\0");
};


UPD: Вышеприведённый код не полный, в нём присутствуют не все символы, которые нужно экранировать. Давайте будем исходить из того, что replace для \b, \t, \Z, _, % также присутствуют:
exports.escapeStr = function(str) {
    return str.replace(/[\\"']/g, "\\$&").replace(/\n/g, "\\n")
                .replace(/\r/g, "\\r").replace(/\x00/g, "\\0")
                .replace(/\b/g, "\\b").replace(/\t/g, "\\t")
                .replace(/\x32/g, "\\Z") // \Z == ASCII 26
                .replace(/_/g, "\\_").replace(/%/g, "\\%");
};

MySQL   JavaScript   Node.js    

346   5   09:32, 20th August, 2020


Как лучше всего организавать хранение "нравица"-"не нравица" для статей или постов в базе данных?

Например, голосовать может за один пост один ip адрес, база — мускул, таблицы innoDB.


Нужно организовать хранение голосов в базе с наименьшими затратами ресурсов и с максимальной скоростью подсчета рейтинга для статьи.


Я думаю структура таблицы следующая:


article_id (int 11)

ip (varchar 15)

mark (enum ("-1",«1»))


PrimaryKey по двум первым полям. Скорее всего, можно сделать проще, поделитесь опытом, пожалуйста.

MySQL   Инструменты   проведения   опросов    

327   3   07:20, 7th August, 2020


Статьи (мануалы) по распределение нагрузки

Ребят. Помогите пожалуйста найти хорошие статьи по настройке распределения нагрузки web-серверов(apache, mysql, postgresql, nginx) для linux. Тоесть есть некоторое количество серверов и планируется запустить на них lamp и распределять нагрузку между ними

Linux   MySQL   PostgreSQL   Nginx   Apache    

316   4   16:36, 9th August, 2020


Можно ли обойтись без Entity-Attribute-Value?

Необходимо сделать нечто, похожее на интернет-магазин. Проблема в выборе способа хранения информации о товарах, так как типов товаров более сотни и каждый из них обладает собственным наобором атрибутов.

Тот же Magento Commerce для этих целей использует EAV структуру, из-за которой селект-запросы сильно усложняются и работают не очень быстро. Пока единственная мысль — периодически преобразовывать EAV в нормальную таблицу, из которой и будут идти выборки. Есть ли более эффективный способ в рамках MySQL или PostgreSQL?

Также в процессе поиска ответа на этот вопрос не раз встретил мнение, что в этом случае стоит отказаться от реляционной базы и перейти на noSQL. Насколько это соответствует истине и будет ли это быстрее работать?

SQL   NoSQL   EAV    

290   2   22:31, 24th August, 2020


Структура базы данных

Подскажите пожалуйста по структуре базы данных. Нужно хранить информацию по фильмам.
К каждому фильму, относиться много информации.

а именно:

Название
Оригинальное название (анг)
Год
Страна
Слоган
Режиссер в множестве
Сценарий (в множестве)
Продюсер (в множестве)
Оператор (в множестве)
Композитор (в множестве)
Художник (в множестве)
Монтаж (в множестве)
Жанр (в множестве)
Бюджет
Сборы
Зрители
Примера
рейтинг MPAA
Продолжительность

таких фильмов будет много (порядка 80 000), и почти все однотипные, поэтому нужно как-то грамотно составить DB, что бы не было проблем в дальнейшем.

как я думал сделать:

Главная таблица (catalog) в которую заносим

id — номер фильма
name — название
name_original — оригинальное название
type — тип картины (фильм, сериал)
year — год выпуска

здесь меня смущает нужно ли здесь держать (name, name_original)… или вынести ее в отдельную таблицу

таблица с параметрами (catalog_properties)
film_id — номер фильма
property_id — номер название параметра
property_value — номер параметра

таблица с именами параметров (catalog_properties_name)
id — номер параметра
name — название параметра
code — код параметра для внутренних потребностей фронтенда

+ несколько таблиц справочников, для стран, жанров, etc

таблица для параметров что не входят в справочники (catalog_properties_data)
id — номер параметра
name — название параметра

вот здесь меня смущает что все параметры будут держаться в поле с типом varchar
а хорошо бы для
бюджет, сборы в США — interger,
премьера — date,
рейтинг MPAA — enum


разве что делать таблицу для параметров такой:

id — номер параметра
name_string — название параметра
name_integer — название параметра
name_datetime — название параметра
name_enum — название параметра

и выбирать в дальнейшем так "SELECT CONCAT_WS('', name_string, name_integer, name_datetime, name_enum) as name" но хорошо ли так ??

+ еще не знаю как поступить с описанием фильмов, это будет тип TEXT, выносить ли в отдельную таблицу все описания, или запихать в таблицу параметров, что указана выше

SQL   Базы   данных    

351   3   15:47, 13th August, 2020


MySQL + Mac, не хочет запускаться сервер?

Леопард 10.6.6, качал мускуль сервер от сюда. Поставил, лезу в системные настройки, пытаюсь стартануть — не получается. Только спрашивает пароль и ничего не происходит. Перезгружал.

Железка — mbp 374.
ad7e392203ab21cbfc41957c78d702e7.png

Что посоветуете?

MySQL   macOS    

357   6   23:29, 26th August, 2020


Утилиты для работы с удалённым SQLite по FTP

Добрый день.
Перевожу часть некритичных вещей с хранения сериализованных данных на sqlite.
Есть ли такие инструменты(бесплатные) которые позволяют работать с удалённым sqlite напр. по FTP?
Нужны базовые возможности на создание таблиц, изменение структуры, управление содержимым…
Заранее спасибо!

SQLite   FTP    

393   4   21:06, 1st October, 2020


Вопрос про collations в MySQL?

Имеем таблицу следующей структуры:

mysql_collations_question_table_structur



В ней содержатся такие данные:

mysql_collations_question_table_data.png



Делаем экспериментальный запрос:

SELECT<br/>
LOWER(`md5_upper_bin`),<br/>
LOWER(`md5_upper_ge_ci`),<br/>
UPPER(`md5_lower_bin`),<br/>
UPPER(`md5_lower_ge_ci`) <br/>
FROM `qwew`




Получаем результат:

mysql_collations_question_experimental_q


Вопрос: почему постфикс _bin у этих полей игнорируется в данном случае? Руководствуясь маном по MySQL, можно ведь сказать, что _bin влияет также на функции преобразования регистра строковых данных, поэтому наличие _bin в названии сравнения должно нивелировать действие функций LOWER и UPPER. Чего на практике же не происходит.

MySQL   SQL    

276   2   08:55, 24th August, 2020


Поле типа BIT

Постараюсь быть конкретным и понятным.
В mysql поле типа bit(2) используется как флаг, т.е. например первый бит — получатель удалил сообщение, второй бит отправитель удалил сообщение, эдакая двойная булевая, вопрос, как изменять отдельно каждый бит, не извлекая предыдущего?
Где-то читал про это, но найти не могу.
Копать в сторону смещений?

MySQL    

354   3   13:25, 1st August, 2020


Альтернативы DbSimple

Уже год, как пользуюсь в своих проектах DbSimple, но для высоконагруженных проектов хотелось бы что нибудь побыстрее. Что посоветуете?

PHP   MySQL    

383   7   01:05, 7th August, 2020


Учёт количество запросов в БД

Существуют ли такие приложения которые могут точно показать сколько запросов в день было на конкретную БД? (пример MySQL)?

Спасибо

MySQL    

339   3   21:11, 2nd August, 2020


Блокировка страниц при совместном редактировании

Доброго времени суток.

Есть такая структура базы данных

image

Краткое описание:

users — таблица пользователей.

user_roles — роль пользователя в конкретной свадьбе, пользователь может участвовать в редактировании
нескольких свадеб.

wedding — таблица свадеб.

user_edit_rights — Права пользователя в конкретной свадьбе на редактирование того или иного модуля.

user_module_locks — Блокировки пользователем конкретного модуля

user_right_modules — список модулей которые можно редактирвать.

modules — список всех модулей на сайте.

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

Я решил сделать так:

1. После того как пользователь заходит на страницу выполняется следующий запрос.

SELECT

users.user_id,
modules.module_id,
IF(user_edit_rights.user_id = users.user_id, 1, 0) AS user_can_edit_module,
my.module_id AS user_lock_module_id,
IF(other.user_id != users.user_id,1,0) AS another_user_lock_module

FROM users

INNER JOIN user_roles ON users.user_id = user_roles.user_id

INNER JOIN wedding ON wedding.id = user_roles.wedding_id

LEFT JOIN modules ON 1

LEFT JOIN user_edit_rights ON user_edit_rights.user_id = users.user_id AND user_edit_rights.wedding_id = wedding.id AND user_edit_rights.module_id = modules.module_id

LEFT JOIN user_module_locks AS my ON my.wedding_id = wedding.id AND my.user_id = users.user_id

LEFT JOIN user_module_locks AS other ON other.wedding_id = wedding.id AND other.module_id = modules.module_id

WHERE users.user_id = 3285
AND wedding.id = 72
AND modules.name = 'gifts'


Результат его выполнения выглядит примерно так:

user_id module_id user_can_edit_module user_lock_module_id another_user_lock_module
3285 10 0 2 0


После этого я могу либо добавить запись в таблицу user_module_locks
либо обновить либо удалить ненужные блокировки. То есть дальнейшая
логика приложения зависит именно от результата выполнения данного запроса.

Меня смущают 6 джоинов (в идеале 8-9) и постоянная необходимость выполнения этого запроса
и запроса на манипуляцыю (update, insert, delete) данных в таблице user_module_locks
данные в этой таблице будут постоянно изменятся при переходе пользователя от одной
страницы к другой. EXPLAIN данного запроса показывает что все SIMPLE и скорее всего
одновременного редактирования многими пользователями не будет (онлайн < 10 человек).

Больше всего меня интересует вопрос нормально ли это когда для получения полной
сущьности используется один запрос с большим кол-вом джоинов?

А также примерный алгоритм для организации редактирования данных несколькими
пользователями сразу.

А также нормально ли когда первичный ключ состоит из 3х и более полей?

PHP   MySQL    

273   2   15:01, 19th August, 2020


NoSQL СУБД для веб-сервера на VDS

Навеяно ответами к этому вопросу. Оказывается для MongoDB крайне желательно выделять отдельный сервер, т. к. память он отдавать не желает., что может быть чревато для других приложений.

В связи с этим вопрос — какую СУБД лучше поставить, чтобы её аппетиты до памяти можно было ограничивать. Желательно максимально близкую к Mongo, то есть свободная схема объектов/документов, но с разделением их на коллекции.

Спасибо.

Upd.: OS — Debian 6.0, nginx+php-fpm+passenger+mysql

NoSQL   MongoDB    

370   5   23:20, 9th August, 2020


Проверка вхождения IP адреса в диапазон средствами SQL или PL/SQL?

Привет, други.


Подскажите пож-та, как средствами SQL (предпочтительно) или PL/SQL реализовать проверку вхождения конкретных IP адресов в тот или иной диапазон?


Проще говоря, надо определить, к какой подсети относится конкретный IP адрес:


Есть таблица ip_networks формата

RANGE_BEGIN RANGE_END RANGE_NAME<br/>
10.160.1.0 10.160.1.125 MSK<br/>
10.160.1.126 10.160.1.254 SPB



… и таких еще много…


и нужно выводить в select-запрос значение поля RANGE_NAME для каждого IP адреса из длинного списка.


В голове крутится что-то очень длинное с использованием BETWEEN, FOR и CASE, но подозреваю, что эта задача как-то элементарнее должна решаться…


Очень на вас надеюсь…

SQL   PL/SQL    

309   2   17:33, 1st August, 2020


Cоставлениe sql-запроса, пожалуйста?

Есть таблица, в которой два столбца, один со значениями, другой с их статусами (например: если статус 1, то значение относится к производимой продукции, если статус 2, то значение относится к реализованной продукции). Необходимо, что бы запрос брал значение из первого столбца на основе значения во втором столбце, а на выходе получалось два отдельных столбца с произведенной и реализованной продукцией. Хотелось бы сделать это одним запросом.


Допустим есть запрос:
SELECT value as value1, value as value2, status

необходимо, что бы в зависимости от поля status, данные из поля value попадали либо в value1 либо в value2.

MySQL   SQL    

341   5   22:21, 2nd August, 2020


Версионирование mysql

Вопрос, у нас на одной Базе данных используя одинаковые таблицы крутяться 4 проекта (Разные платформы, API CRM Сайт)

Так вот каждый проект разрабатывает своя группа програмистов и вносить в структуру БД разлинчые правки.
И в момент обновления из SVN нам надо получить какие изменения надо произвести на mysql сервере
Типа SVN для mysql

Посоветуйте в какую сторону смотреть, чего использовать

MySQL    

305   2   23:58, 2nd August, 2020


mysql добавление "-" в список символов

Возникла необходимость при полнотекстовом поиске искать слова с тире (по умолчанию символ "-" является логическим операторым и не считается символом).
Мануал по этому поводу говорит:

Modify a character set file: This requires no recompilation. The true_word_char() macro uses a “character type” table to distinguish letters and numbers from other characters.. You can edit the contents in one of the character set XML files to specify that '-' is a “letter.” Then use the given character set for your FULLTEXT indexes.

Вот только где находится этот character set file гугл не знает:( Кто то сталкивался с подобным?

Спасибо

MySQL    

254   1   18:54, 20th August, 2020


MySQL и триггер на вставку

Вставляю в первую таблицу запись. На ней же висит триггер «после вставки», который добавляет id из первой таблицы во вторую. Как это реализовать?

Если вставляю в триггер запрос: INSERT INTO table2 VALUES (table2.id = LAST_INSERT_ID()); — добавляются «1».
Если запрос: INSERT INTO table2 VALUES (table2.id = new.id); — «0».

MySQL    

303   1   14:17, 25th August, 2020


система тегов на MongoDB

Можно ли из документов вида
{...,
    tags: ['php','nosql',...]
}


… выбирать все уникальные значения массива tags одним запросом?

NoSQL   MongoDB    

403   3   18:46, 16th August, 2020


Mssqlserver error 9002: tempdb is full

Имеется такая ситуация:
Event Type: Error
Event Source: MSSQLSERVER
Event Category: (2)
Event ID: 17052

Description:
Error: 9002, Severity: 17, State: 6
The log file for database 'tempdb' is full. Back up the transaction log for the database to free up some log space.

Сам файл C:\Program Files\Microsoft SQL Server\MSSQL\Data\templog.ldf разросся до 9 гигабайт.
Вопрос, как его корректно очистить?

Базы   данных   Администрирование   баз   данных   SQL   Server    

380   2   17:43, 24th August, 2020


ruby-mysql2: MySQL server has gone away

Есть даемон написанный на ruby с использованием гема mysql2, занимается тем, что иногда получает сообщение из AMQP и пишет в базу.

При длительном простое MySQL закрывает соединение по таймауту и при попытке выполнить запрос вываливается exception 'MySQL server has gone away'. Гугл выдает решение для ActiveRecord, про mysql2 ничего. В методах класса Mysql2::Client ничего подходящего не нашел, опция :reconnect => true не помогает.

Как проверить соединение перед выполнением запроса и если оно закрыто, то поднять его снова?

Ruby   MySQL    

350   2   14:06, 13th August, 2020


Архитектура БД для фильтров аналог Яндекс Маркета?

Разрабатываем сейчас структуру характеристик товара, чтобы реализовать фильтры как на Яндекс Маркете.

Высоконагрузный проект, поэтому запросы на 5 листов А4 не пойдут.

market.yandex.ru/guru.xml?cmd=-rr=9,0,0,0-v…


Вот смотрите, если отмечаем любой пункт в фильтре, то вся фильтрация перестраивается и убираються те пункты, по которым подбор уже не пройдет
my.jetscreenshot.com/5783/20110219-smd2-59k...

И это все летает


Вопрос, может есть где статьи или человек, который сможет построить архитектуру таблиц с такими фильтрами?

Готов хорошо заплатить

MySQL   Яндекс.Маркет    

459   4   15:16, 12th August, 2020


Поиск mysql like

Задача сравнительно простая, но нагруженный проект.

Есть поле в таблице varchar(255). В таблице много полей и порядка 300 000 строк, но будет расти примерно до 1 000 000.
Сейчас поиск осуществляется так name LIKE '%$name%' OR name '%$translit%'

Поиск подтормаживает.

В связи с этим есть вариант
вынести полностью в отдельную таблицу search поля id, name и использовать все тот же LIKE '%$name%"'

Ускорит ли это поиск?

Ну и второй вариант морочиться с FULLTEXT, но никогда им не пользовался, есть ли смысл? Судя по докам он обходит меньше строк.

Морфология не важна.

Третий вариант видел в форумах. Разбивать на слова и составить таблицу word index и искать по нему.

В какую сторону копать?

MySQL    

359   4   21:06, 1st October, 2020


Перенос баз PostgreSQL после обновления с 8.3 на 8.4

Обновлял тут давеча Debian и вместе с ним обновился PostgreSQL с версии 8.3 на версию 8.4.
Ясное дело 8.4 слишком крут, для того чтобы использовать базы из 8.3 и поставился он чистым. Про pgdump я тогда не подумал. А теперь уже поздно. Даунгрейдится до 8.3 не хочется. Есть более вменяемые решения?

upd: Бэкапы проверил. Их нет. Про базу забыли на 3 недели, а скрипт бэкапов удаляет всё старше 10 дней.

PostgreSQL   Debian   Резервное   копирование    

376   2   17:49, 1st October, 2020


Объединить несколько результатов MySQL запроса в один

Есть запрос с сервера А
$queryA = mysql_query("SELECT * FROM table");
и запрос с сервера B
$queryB = mysql_query("SELECT * FROM table");
Таблицы идентичны, во всем кроме данных.
Данные сервера А частично (в начале) равны данным с сервера B
Сортировка по дате.

Нужно собрать данные из двух таблиц в один mysql_fetch_array
Возможно ли это?

MySQL    

376   9   15:31, 1st October, 2020


Логирование в MS SQL?

Есть ли готовые решения для логирования действий в БД?

Нужно при изменении данных в любой таблице логировать:

  1. — пользователя
  2. — время
  3. — содержимое строки


Это должно происходить для любых операций, т.е. insert/update/delete.


При этом содержимое лога не должно ограничиваться журналом транзакций.


Нагуглил пару вариантов, но оба не подходят — либо нет даты, либо данные из журнала транзакций.

Журналирование   SQL   Server    

370   3   21:06, 1st October, 2020


InnoDB или MyISAM с триггерами?

Проектируется база данных (MySQL) по большинству таблиц которой будет вестись поиск.

Было бы неплохо, если бы поиск был полнотекстовым.


Есть статья, как для InnoDB сделать полнотекстовой поиск (с дублированием данных в поисковой таблице).


Либо можно сделать таблицы на MyISAM, а отношения между таблицами организовать при помощи триггеров.


Какие есть плюсы/минусы у этих вариантов в плане скорости и отказоустойчивости?


Насколько оправданы гибридные варианты?


Я понимаю, что MyISAM не поддерживает механизм транзакций, есть ли ещё другие подводные камни?

MySQL    

301   1   22:03, 1st October, 2020


PHP + DB4

Для одного высоконагруженного проекта используется PHP-модуль DB4 для хранения всех данных. Версия PHP 5.2.3.
Возникают постоянные проблемы «поломки» файлов базы, когда в неё становится невозможно что-то записать, приходится пересоздавать файл базы и перезаписывать в него данные.
Также есть другие проблемы — например, в модуле не реализована блокировка файлов при записи поэтому иногда возникают ситуации с потерей данных.
Нужно поменять базу данных, но подходящих вариантов я так и не нашел. Пробовал перейти на MongoDB, но есть две проблемы — невозможность использовать точки в ключе и невозможность писать текст в не-utf кодировке. Также изучался tokyo tyrant, но не подходит его структура, нужна древовидная структура или хотя бы БД-Контейнер как в MongoDB.
Нашел упоминание о BDB 5, начиная с версии PHP 5.3.3. Но информации о том, что это за зверь такой и решены ли в нем проблемы DB4 я не нашел.
Что посоветуете?

PHP   NoSQL    

400   1   11:57, 2nd October, 2020


Медленная сортировка по дате в Mysql

имеется медленный запрос (для 30к постов и 30к юзеров выполняется за 0.2с):

SELECT *
FROM `posts`
JOIN `users` ON ( `posts`.`user_id` = `users`.`id` )
GROUP BY `posts`.`id`
ORDER BY `posts`.`date` DESC
LIMIT 10

описывать стуктуру таблиц не буду полностью, т.к. полей много а на суть вопроса это не влияет, опишу основное — date типа datetime, ID типа int

праймери индексы на posts.id и users.id + индекс на posts.user_id

при таком раскладе запрос выполняется за 0.2с

если поставить индекс на date запрос выполняется все равно за 0.2с
если поставить сортировку по posts.id (что в принципе эквивалентно date), запрос выполняется за 0.001с
если убрать JOIN users запрос выполняется за 0.001с

explain:

без индекса на posts.date, время 0.2с

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE posts index user_id PRIMARY 4 NULL 1000 Using where; Using temporary; Using filesort
1 SIMPLE users eq_ref PRIMARY PRIMARY 3 db_site.posts.user_id 1 Using where


с индексом на posts.date, время 0.2с

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE posts index user_id date 8 NULL 1000 Using where; Using temporary
1 SIMPLE users eq_ref PRIMARY PRIMARY 3 db_site.posts.user_id 1 Using where


без сортировки по posts.date, время 0.001с

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE posts index user_id PRIMARY 4 NULL 1000 Using where
1 SIMPLE users eq_ref PRIMARY PRIMARY 3 db_site.posts.user_id 1 Using where


а теперь внимание, вопрос — как сделать сортировку по дате быстрой? и что я делаю не так…

MySQL    

369   3   18:51, 2nd October, 2020


MS SQL Server. T-SQL. Организация "истории изменений"

Захотелось мне сделать так, чтобы любые изменения какой-либо записи в определенной таблице отслеживались и всегда можно было откатиться к более старой версии.

Поразмыслив я прикнул, что хорошо бы реализовать это на уровне БД, чтобы исключить какие-либо накладки в приложении.

Создаем mytable_history, с сигнатурой идентичной mytable, дополняем полями historyID и historyDate, вешаем на mytable триггеры, которые при вставке и изменении копируют соответствующую запись в history с новым historyID, и проставляют дату изменения.

Решение устраивает. Любое изменение всегда будет отражено, а старая версия сохранена даже если взломан сайт — доступа у аккаунта по кторому сайт ходит в БД к таблице _history нет.

И тогда захотелось большего, знать какой пользователь системы сделал то или иное изменение. Но на уровне базы данных это неизвестно. Идентификатор пользователя известен только на уровне приложения, для базы данных же они все «на одно лицо» и ходят под общим аккаунтом к sql серверу.

Первой мыслью было при коннекте создавать переменную с идентификатором пользователя и использовать её в триггерах. Но одно и тоже соединение могут использовать разные пользователи сайта — ASP.NET держит в пуле n-e количество соединений и выдает по необходимости, так что это не годится. Значит нужно передавать идентификатор в каждом запросе к БД.

Собственно вопросы:
1) правилен ли вообще такой дизайн? Может то что я хочу по-другому делают? Но не хочется всетаки выносить систему версий из БД.

2) как можно к запросу прикрепить переменную, так чтобы она не влияла на запрос, но была доступна триггеру AFTER UPDATE.

Используется linq2sql, т.е. теоретически можно сделать свой DataContext и сделать отправку идентификатора пользователя с каждым запросом. Вопрос только как это можно реализовать?

C#   Transact-SQL   SQL   Server    

264   2   21:06, 1st October, 2020


Простой, но медленный запрос в Mysql, что соптимизить

Запрос примитивный — вытащить посты по указанному тегу

SELECT SQL_NO_CACHE posts.id, posts.text, posts.anno, posts.date
FROM `posts`
INNER JOIN `posts_xref_tags` ON posts_xref_tags.post_id = posts.id
WHERE posts_xref_tags.tag_id = 1
ORDER BY posts.date DESC
LIMIT 0,10

в posts primary на id, индекс на date

в posts_xref_tags составной primary на tag_id + post_id и индекс на tag_id

Постов в базе 30000, перекрестных связей 40000… постов имеющих связь с tag_id = 1 4,281

запрос выполняется за 0.2с

explain:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE posts_xref_tags ref PRIMARY,tag_id tag_id 4 const 4244 Using temporary; Using filesort
1 SIMPLE posts eq_ref PRIMARY PRIMARY 4 db_site. posts_xref_tags. post_id 1


UPD: Нашел решение!!!

SELECT SQL_NO_CACHE posts.id, posts.text, posts.anno, posts.create_date
FROM `az_posts`
WHERE id
IN (

SELECT `post_id`
FROM `posts_xref_tags`
WHERE tag_id =1
)
ORDER BY posts.create_date DESC
LIMIT 0, 10

выполняется за 0.002с
всем спасибо!

MySQL    

211   5   21:06, 1st October, 2020


Подсчет потомков узла в MySQL?

Добрый день.


Имеется таблица:

CREATE TABLE sections (<br/>
 id_sections INT(11) NOT NULL AUTO_INCREMENT,<br/>
 name VARCHAR(255) DEFAULT NULL,<br/>
 parent INT(11) UNSIGNED NOT NULL,<br/>
 PRIMARY KEY (id_sections)<br/>
)<br/>



В которой хранится двухуровневое дерево в поле parent храниться id_sections родителя.


Требуется создать запрос для вывода всех корневых каталогов (parent = 0) с количеством вложенных каталогов.


Заранее благодарен.

MySQL    

228   2   21:06, 1st October, 2020


Случайная строка из таблицы

Как вывести случайную строку из таблицы базы данных MySQL.

MySQL    

372   6   00:24, 2nd October, 2020


Debian-сервер умирает, когда MySQL строит индекс?

Есть сервер EQ-4 с Debian Squeeze 2.6.32-5-amd64. Там Software-RAID 1.



На сервере живет MySQL 5.1.49, в которой есть таблица MyISAM на 4 ГБ с индексами на 500 МБ. Индексы убираются в память и выборки из таблицы происходят достаточно быстро (кстати, какими-то настройками удалось добиться ускорения выборки в 10 раз, но я забыл, какими именно и поменял конфиг).



Проблемы начинаются, когда идет добавление данных в таблицу или на чистой таблице строится индекс (я часто удаляю данные и загружаю полностью новые). Disk utilization for /dev/sda — 100%, for /dev/sdb — 50%. Все дисковые операции начинают жутко тормозить. Доступ к другим таблицам (со смешными размерами) происходит очень медленно. Apache и nginx массово создают процессы и потоки. Мониторинг не мониторит (вылетает из-за превышения времени ожидания ответов от каких-то утилит). LA взлетает до 30..50 (в норме он там около 0.5).



Я не возражаю против того, что базе нужен диск. Но что можно сделать, чтобы при активном юзании диска одним приложением, другие приложения не умирали так быстро? Можно ли как-то указывать приоритеты?



FreeBSD не предлагать :-)

Я бы рад, но не справлюсь с установкой и настройкой.





UPDATE:

По результатам небольшого тестирования перешел на другой планировщик ввода-вывода. Был cfq (!!!), стал anticipatory. Сейчас тестирую в работе.





UPDATE-2:

Тестировал разные планировщики в реальных ситуациях. Выбор планировщика и правильная настройка их параметров очень сильно влияет на производительность и отзывчивость сервера. Сейчас остановился на deadline, но однозначную рекомендацию тут давать нельзя: выбор зависит от приоритетных задач вашего сервера. Постараюсь разобраться в вопросе и написать более подробно.

MySQL   Debian    

388   4   10:06, 1st October, 2020


Экспорт MySQL с пользователями?

Встала задача перехать на другой VDS. На обоих машинах стоит ISPManager, но он отказывается делать импорт пользователя — постоянно ошибки. Решил делать в ручную, но очень не хочется создавать заново пользователей MySQL, потом их прописывать в скриптах и делать прочие сопутствующие вещи.


Можно ли как то сделать экспорт всех баз вместе с пользователями, сохранив их пароли?

MySQL   ISPmanager   Перенос   данных    

345   3   21:06, 1st October, 2020


Организация системы ревизий в базе данных?

Дано:

  1. Приложение, написанное на PHP с MySQL (Yii Framework);
  2. Несколько типов контента, например setting и node. Хранится в разных таблицах со своим набором полей;
  3. Около 10к пользователей приложения с очень частым обновлением одного из типов контента, допустим node. Во время редактирования node может обновляться до нескольких раз в секунду (с созданием новых ревизий). В тоже время, некоторые node могут не обновляться месяцами, а некоторые каждый день по нескольку раз.


Необходимо сделать что-то вроде системы контроля версий, чтобы синхронизировать несколько клиентских приложений с сервером. Хороший пример: расширение для браузеров Xmarks.

Вопрос заключается в том, как хранить ревизии (и изменения в них) в базе MySQL?



Мне на ум пришло такое решение:



Одна таблица, которая хранит все изменения контента. Выглядит это примерно так:


rev action type id args
1 insert node 1421 { text: 'custom node', created: 1236124121 }
2 update node 1421 { text: 'asd', modified: 1237123134 }
3 update node 1421 { title: 'example node', modified: 1238123814 }
3 insert node 1422 { field: new_value }
3 update setting 12 { email: 'Oo@mail.ru' }
4 update node 1422 { field: new_new_value }
4 update setting 12 { email: 'mail@mail.ru' }
5 delete node 1421 {}


  • Rev – номер ревизии пользователя. В рамках одной ревизии может быть несколько записей.
  • Action – тип изменений. insert|update|delete.
  • Type – тип контента. Например, node или setting.
  • Id – идентификатор контента.
  • Args – объект json с логом изменений.


Не знаю, насколько правильно хранить ревизии таким образом, в одной таблице. Допустим, у каждого юзера будет по 5к ревизий – это уже 50 млн. записей! Как с этим будет справляться MySQL, если учесть, что идет постоянная запись в таблицу?



Как можно решить данную проблему наиболее рационально? Готов рассмотреть варианты с использованием других БД, в т.ч. NoSQL.



Большое спасибо за помощь.



UPD:

Есть вариант отказаться от возможности восстановить старые ревизии. Таким образом, можно исключить update записи и хранить только последнюю ревизию в таблице контента.

Тогда таблица сократиться в 10 раз, и в ней будет около 5 млн. записей. Насколько это упрощает задачу? Как поведет себя MySQL в таком случае?

MySQL   Yii    

348   1   21:06, 1st October, 2020


Mysql-ферма

Если говорить про сферический mysql в вакууме, то какой вариант абстрактно лучше: три четырехъядерных Core2Quad сервера по 6 Гб памяти каждый (с репликацией master-slave) или один восьмиядерный Xeon c 12 Гб памяти? Или например так: три по 8 Гб или один 24 Гб? Приоритет системы в основном на чтение.

MySQL    

342   2   12:44, 2nd October, 2020


Импорт массива данных в таблицу mySQL?

Доброе время суток.


Есть задача отпарсить TXT и обновить данные в таблице используя результат парсинга.

Первая подзадача решается без проблем, а вот вторая задача решается, но решение не совсем корректное на мой взгляд.


TXT:

001-03-0027,4000.50,5<br/>
001-03-0031,8000.50,6<br/>
001-03-0028,12000.50,7<br/>
001-03-0033,16000.50,8<br/>
...<br/>



Таблица:
CREATE TABLE properties(<br/>
 ...<br/>
 id_1c VARCHAR(255) DEFAULT NULL,<br/>
 price FLOAT DEFAULT 0,<br/>
 count INT(11) DEFAULT 0,<br/>
)<br/>



Обрабатывая файл построчно я получаю 3 переменные $array['id_1c'], $array['price'], $array['count']. Которые запихиваю в запрос:

<br/>
'UPDATE properties SET price='.$array['price'].', count='.$array['count'].' WHERE id_1c = '.$array['id_1c'];<br/>



В итоге получаю количество запросов прямо пропорциональное количеству строк в файле, а их там 5000 шт.

Возможно ли как то оптимизировать данный процесс?

С учетом того, что требуется проводить мониторинг успешности обновления данных:

ID 001-03-0027: обновлен успешно<br/>
ID 001-03-0031: не найден в базе<br/>
ID 001-03-002: не найден в базе<br/>
ID 001-03-0033: обновлен успешно<br/>



Спасибо.

MySQL   Перенос   данных    

333   3   13:36, 1st October, 2020


Анализ графиков загрузки и оптимизация web-сервера?

Добрый вечер, хабр. Прошу у вас помощи в анализе графиков загрузки сервера, и его оптимизации, думаю я что-то упускаю из вида, или просто не понимаю.

Предыстория: достался в наследство один сайт, расположенный на достаточно мощной vds(8 ядер, 16Gb RAM, Ubuntu Server), сделанный на joomla с несколькими компонентами, один из которых — активно используемый форум. Всё это работало на чистом Apache+MySQL(подавляющее большинство таблиц в MyISAM). Вечером, когда на сайт приходит большое количество человек, он периодически перестаёт отвечать на запросы, т.е. по ssh зайти можно нормально, и работать в консоли, но сам сайт, если и открывается, то очень медленно. В такие моменты LA был около 14-16.

Первым делом я настроил фронтэнд(nginx), для отдачи статики и проксирования остального на апач, и поставил memcached, в котором джумла начала хранить кэш. После этого LA в пиках стал около 4. Какое то время сайт работал нормально, но через несколько дней снова начались проблемы. (LA 8-9+)

В этот раз я решил копать глубже, и, для начала, поставил munin для наблюдения за системой. Затем я установил APC, настроил размер кэша опкода так, чтобы он не переполнялся, попробовал использовать его как хранилище кэша джумлы, но испугался появившейся 100%ной фрагментации, и вернул кэш в memcached. Также я прогнал БД tuningprimer'ом, воспользовался рекомендациями, сделал больше table_cache и open_files_limit, добился того, чтобы кэша хватало. После всего этого максимальный замеченный сегодня LA был равен 5, но пользователи жаловались, что некоторое время сайт был недоступен.

В связи с этим у меня вопрос к хабрасообществу: что ещё можно сделать в этой ситуации и в какую сторону смотреть? Насколько я могу понять, проблему создаёт большое количество запросов к БД, многие даже в slow-log попадают, но что-то сделать с запросами можно только сильно залезая в код компонентов, что хочется делать только в крайнем случае. Какие графики и конфиги показать для лучшего понимания ситуации?

UPD: В планах — попробовать избавиться от apache, оставить только nginx + php-fpm. Нормально ли будет работать APC с такой связкой, и поможет ли мне вообще она?

MySQL   Nginx   Apache   Ubuntu    

377   7   19:05, 25th September, 2020


Импортирование xls файлов в базу данных psql на python

Добрый день! Как можно через python импортировать эксель таблицу в PostgreSQL? Изначально нам дан url по которому находится эксель таблица, и нужно чтобы это таблица была в бд postgreSQL, т.е. по url коду данные импортируются в базу данных PostgreSQL, как это можно сделать?

Python   PostgreSQL   база данных  

512   0   00:43, 27th June, 2021


codeignite. Посчитать count имея две таблицы.

Здравствуйте, подскажите пожалуйста, не могу разобраться. Имеется две таблицы: tblusers и tblfamily На страничке application/view/admin/manage_user.php я вывожу все данные из таблички tblusers, также я хочу вывести количесто (count) записей, которые: запись поля id из таблицы tblusers была равно записям поля id_user  таблицы tblfamily . Решить за меня не прошу, хотя бы натолкнуть. Понимаю, что надо в файле APPLICATION/models/manageusers_model.php делать запрос№ ЕЩе не дошло, как делать запросы в codeignite. Прикрепю эти две таблички, чтобы понятно было. 

 

codeignite   count   sql  

1383   1   20:56, 13th March, 2022


период по дням

Здравствуйте, подскажите пожалуйста, как прописать период по дням от заданной даты

Курс длится 14 дней, у которых прописаны услуги, но есть даты без услуг

нужно чтобы отображались все дни, в течении 14 дней  от начальной даты

Дата-переменная, дней у которых нет услуг соответственно нет в БД   

SELECT     
        (CASE ServedSet.IsServed
    WHEN 1 THEN Quantity
    END) as Sdel,
    (CASE ServedSet.IsServed
    WHEN 0 THEN Quantity
    END) as Nazn,    
    Code,
    Visit.Name AS Name5,
    CONVERT(VARCHAR(5), ServDate, 08) AS ServDate
     Quantity,
    Additional,
    Category,
    Comment,
    Visit.OpenDate as OpenDate,
    Visit.CloseDate as CloseDate,
     EmployeeSet.Name as Name11,
     Price   
FROM
    ServedSet
        INNER JOIN
        (      SELECT 
                Name, 
                CONVERT (date, OpenDate) as OpenDate,
                CONVERT (date, CloseDate) as CloseDate,
                VisitsSet.Id AS VisitID,
                Birth,
                Clients_Category as Category

            FROM
                VisitsSet

                JOIN ClientsSet
                    ON Visits_Clients = ClientsSet.Id
        ) AS Visit
            ON ServedSet.Served_Visits = Visit.VisitID

    INNER JOIN
        ServicesSet
            ON Served_Services = ServicesSet.Id
    
    INNER JOIN
        EmployeeSet
            ON Served_Employee = EmployeeSet.Id
            WHERE
        IsServed in (0,1) 
        AND
        OpenDate = @Zaezd AND      
         Visit.Name = (@Client)    AND 
    ORDER BY ServDate

sql  

3957   0   10:44, 25th October, 2023