Информация

Последние записи

Теги


Блоги


Записи из всех блогов на Sql.ru


Остатки на складах - оптимизация, когда нужна и сортировка и поиск.

Блог: SQL Server
Остатки на складах

Постановка задачи

Задачу необходимо решить на SQL Server 2014 Enterprise Edition (x64).
В фирме есть много складов. В каждом складе ежедневно по нескольку тысяч отгрузок и приемок продуктов. Есть таблица движений товаров на складе приход/расход. Необходимо реализовать:

Расчет баланса на выбранную дату и время (с точностью до часа) по всем/любому складам по каждому продукту.
Для аналитики необходимо создать объект (функцию, таблицу, представление) с помощью которого за выбранный диапазон дат вывести по всем складам и продуктам данные исходной таблицы и дополнительную расчетную колонку — остаток на складе позиции.читать дальше...
автор: Алексей Куренков добавлено: 30 июн 17 просмотры: 2438, комментарии: 2



Что нам скажет SQL Server ERRORLOG?!


Что такое ERRORLOG?! Некоторые специалисты, которые сопровождают MS SQL Server первый раз слышат о нем или не подозревают, что он есть.
ERRORLOG – это журнал MS SQL Server, физически это текстовый файл. По умолчанию он находится в каталоге установке SQL Server в папке Log, к примеру, в «C:\Program Files\Microsoft SQL Server\ MSSQL13.SQL2016\ MSSQL\Log». В нем регистрируются как информационные сообщения, ошибки различной серьезности, пользовательские ошибки информация по dump-ам sql server и другая полезная инфомарция, хотя бывает и не очень полезная.


Журнал создается каждый раз при запуске службы SQL Server, количество их регулируется настройками в SQL Server, желательно указывать 10 или более на важных системах, т.к при установке обновлений, проблемах при нескольких попытках старта SQL Server, они перезаписываются и в итоге вы можете потерять важную информацию при диагностике сервера.
Даже при установке обновлений SQL Server, происходит несколько рестартов служб, что так же создает новый журнал.
В данный журнал записывается информация как об ошибках работы сервера, информация о sql дампах, безопасности, так и информация информационного характера.
Журналы можно просмотреть несколькими способами:
1.    
   Через SQL Server Management Studio, вкладка Management -> SQL Server Logs, дважды щелкнув на нужный файл.
2.       Открыть текстовым любым текстовым редактором из каталог Log.

Текущий всегда будет без ...
читать дальше...
автор: dbasimple добавлено: 30 июн 17 просмотры: 1833, комментарии: 0



Комментарии в блоге queryprocessor.ru

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

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

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

Спасибо всем читателям!
автор: SomewhereSomehow добавлено: 18 май 17 просмотры: 1825, комментарии: 0



SQL Server 2017: Adaptive Query Processing

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

Эти методы объединяются под общим названием – Adaptive Query Processing, и состоят из трех основных компонентов:

• Adaptive Memory Grant Feedback
• Interleaved Execution
• Adaptive Joins

Далее мы рассмотрим каждый из этих методов, где они применяются и какой имеют эффект. Для демонстрации примеров я буду использовать SQL Server 2017 CTP 2.0 совместно с SQL Server Management Studio 17.0.

Читать дальше...


SQL 2016 – It Just Runs Faster: Automatic Soft NUMA

По материалам статьи: SQL 2016 – It Just Runs Faster: Automatic Soft NUMA
30 марта 2016

Автор: Nitin Verma – Principal SQL Server Developer, Bob Dorr – Principal SQL Server Escalation Engineer

Мощности серверного оборудования растут из года в год, что обусловлено многолетним развитием технологий изготовления процессоров. Анализируя результаты наших исследований того, как работает SQL Server на современном оборудовании, и как наши клиенты достигают оптимального для себя масштабирования вычислительных ресурсов, мы выдвинули на передний план дальнейшего развития сервера баз данных необходимость улучшения возможностей секционирования обслуживания нагрузки. В настоящее время, именно основанный на секционировании дизайн является самым распространённым способом локализации обслуживания нагрузки и улучшения производительности и масштабируемости. Примером того, как SQL Server использует секционирование нагрузки является объект CMemThread.

Читать статью полностью
автор: Александр Гладченко добавлено: 17 май 17 просмотры: 1866, комментарии: 0



out of memory while reading tuples при импорте из PostgreSQL

Блог: Cruel SQL
Импортировал давеча SSIS-ом в меру увесистую (несколько миллионов записей) таблицу на SQL Server из PostgreSQL. Скачал официальный бесплатный ODBC-драйвер ( http://www.postgresql.org/ftp/odbc/versions/ ), пульнул DataFlow.

И всё бы пучком, но на небольших выборках.
А вот забрать всю таблицу разом не получалось. Вместо данных вылезала ошибка из сабжа.
Погуглил. Ну ладно, может, лениво погуглил, но, кроме каких-то невнятных кувырков с импортированием данных по кускам и рекламы коммерческих OLEDB-шных провайдеров, ничего не нашёл. Пришлось действовать методом тыка.

В общем, коллеги, если у вас вдруг вскочит аналогичный прыщ по работе, то вот рецепт.
В ConnectionString-е находим свойство useserversideprepare=0 и проставляем там единичку вместо нуля. Ошибка out of memory возникает на уровне ODBC-шного драйвера при подготовке данных на стороне клиента и, соответственно, исчезает при виде этой самой единички.

Ну и да, если импорт запускается по расписанию, нужно в свойствах jobstep-а проставить выполнение в 32-битной среде, иначе валится с мутной ошибкой о невозможности подключения.
автор: Алексей Дружинин добавлено: 17 май 17 просмотры: 1827, комментарии: 0



Загрузка данных из AD (MS SQL)

Блог: DWH
Отнюдь не всегда получается воспользоваться LDAP-запросом к AD для получения данных из домена, т.к. некоторые показатели AD содержат не одно, а несколько значений.
Это можно обойти, написав ScriptComponent следующим образом:

1) В SSIS-пакете объявляем 2 переменные:
domain - отображаемое имя домена, которое пойдет в таблицу
FQDN - имя домена в формате LDAP://xxxx.xxxx.xxxx
2) Создаем ForEach Loop, где в коллекции перечисляем руками сопоставление
FQDN(в Column0) - domain(в Column1)
3) В ForEach добавляем DataFlow
4) В DataFlow в качестве источника добавляем ScriptComponent, не забываем добавить объявленные выше переменный в область видимости ScriptComponent`а
5) В ScriptComponent`е объявляем нужные выходы
6) В код ScriptComponent`а в CreateNewOutputRows добавляем следующее (предполагаю, что можно написать оптимальнее и намного короче)

Пример приложен
читать дальше...
автор: Критик добавлено: 07 апр 17 просмотры: 2812, комментарии: 2



Как сегодня выбирают СУБД: "Просто интересно!"©

Блог: СУБД Caché
Хотите узнать, чем на самом деле руководствуются сегодня в крупных компаниях при выборе СУБД для своих проектов?

Тогда добро пожаловать под кат...
автор: servit добавлено: 03 апр 17 просмотры: 3875, комментарии: 0



500 000 !!! ура !

Блог: Oracle SQL
Авторский курс. SQL от новичка до профессионала. Бесплатное вводное занятие. Сертификат. Записывайтся!
Прокачаю до уровня БОГ!

итак, свершилось, на моем блоге 500 000 посещений
Просмотров
Сегодня 503
В этом месяце 14803
Всего 500111
автор: Myp3_u_K добавлено: 28 мар 17 просмотры: 3588, комментарии: 5



Подсчитать сколько воскресений , понедельников , суббот и тд в заданном году

Блог: Oracle SQL
Авторский курс. SQL от новичка до профессионала. Бесплатное вводное занятие. Сертификат. Записывайся!
Прокачаю до уровня БОГ!


Подсчитать количество дней недели в заданном году
то есть сколько было в указанном году понедельников вторников воскресений ...
можно следующим образом :
   select count(1) dwcount,
          to_char(to_date('01/01/1940', 'DD/MM/YYYY') + level - 1, 'DAY') daywe -- 1940 это год , который нам нужен
     from dual
   connect by level <
              to_number(to_char(Trunc(To_Date(1940 + 1, 'YYYY'), 'YYYY') - 1, -- 1940 это год , который нам нужен
                                'ddd')) -- считаем колч дней 
    group by to_char(to_date('01/01/1940', 'DD/MM/YYYY') + level - 1, 'DAY'); -- группируем запрос по дням

один читатель, предложил свое решение, более рациональное и эффективное, подвергнув мое решение справедливой критике, публикую
  with t as (select to_date('31/12/'||'1940','dd/mm/yyyy') fd_year from dual)
    select to_char(t.fd_year-level+1,'DAY') fv_day,count(1) fn_count from t
    connect by level <= to_number(to_char(t.fd_year,'ddd'))
  group by to_char(t.fd_year-level+1,'DAY')
автор: Myp3_u_K добавлено: 20 мар 17 просмотры: 3098, комментарии: 1


предыдущие записи