Страницы

24 ноября 2014 г.

Design Patterns. Обучение.

Привет всем.
Наткнулся на youtube на очень полезный курс по паттернам проектирования.
Вот ссылка:

DesignPattens


Автор очень понятно и доступно объясняет. К сожалению всего 10 паттернов, но тому кто только начинает их изучение этого будет вполне достаточно. Примеры на C#.

Далее, могу порекомендовать книгу: 


Достаточно неплохая книга. Хорошо структурирована, легко читается. Примеры на C++.

2 сентября 2014 г.

SQL Server. Заметки по ускорению работы БД. Запросы. EXISTS or IN ()

Если необходимо что либо сделать с данными фильтрация которых основывается на подзапросе лучше всегда использовать EXISTS нежели NOT IN ().

Реальный пример:
Запрос:
DELETE FROM document d
WHERE d.iddocument NOT IN (SELECT iddocument FROM document_relation WHERE iddocgroup = d.iddocgroup)

Отрабатывает за 24 сек.

Переписываем запрос: 
DELETE FROM document d
WHERE NOT EXISTS (SELECT NULL FROM document_relation WHERE iddocgroup = d.iddocgroup)

Запрос отрабатывает за 1-2 сек.

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

25 августа 2014 г.

SQL Server. Заметки по ускорению работы БД. Запросы. Blob и Text поля.

Доброго времени суток.
       Далее речь пойдет о связке SQL Server 2008 и .Net Framework 2.0. Недавно один из клиентов начал жаловаться на то что программа тормозит. Клиент относится к старым, структура БД у него устаревшая, билд устаревший, данных много. Высокая нагрузка обеспечивается большим количеством запросов в БД, растущим количеством данных и не совсем оптимально написанными запросами.
       Итак, т.к. на текущий момент я обладаю небольшим опытом по улучшению производительности - буду немного импровизировать и учиться.
Откопав интернетах статью "Статистика по наиболее тяжелым запросам" я воспользовался приведенным им запросом для получения информации о первых кандидатах для оптимизации.

13 февраля 2014 г.

Ошибка: Поставщик VFPOLEDB.1 не зарегистрирован

Вероятно, проблема в том, что вы пытаетесь обратиться к поставщику VFPOLEDB.1 из приложения собранного под x64. Так не получится. С VFPOLEDB.1 можно работать только с приложениями x86.

10 февраля 2014 г.

СБИС++ и Ms SQL Server. Не позволяет запускать хранимки и любые функции

       Не знаю так это или нет, я не силен в СБИС++, но один из клиентов сказал что там есть вариант только выполнять простой набор SQL команд (select, insert, delete, update).
       Мы вышли из положения создав в БД вьюху и триггер instead of insert для нее. Т.е. выполняя простой insert из клиента мы получали возможность реализовать логику на SQL без использования хранимых процедур или функций (которые не понимает сбис). А была мысль всю логику прописывать на клиенте. :)

p.s. пост из разряда "Заметки Капитана Очевидность". А вдруг кому-то не очевидно? :)

24 января 2014 г.

MS SQL Server. Varbinary в динамическом SQL

Тип varbinary не вариант передать как простой тип, его надо преобразовывать специальной функцией.

Собираем динамический запрос: