Май 18 2011

Сравнение данных

SQL
no comments

Цель: Провести простое валидационное тестирование изменений в алгоритмах формирования данных. В наличие есть результат расчитанный на старом алгоритме и результат расчитанный на новом алгоритме. Ответ: В большенстве случаев достаточно выполнить код по следующему шаблону SELECT * FROM ( SELECT ‘OLD’ X, T.* FROM ( SELECT * FROM [СТАРЫЙ РЕЗУЛЬТАТ] MINUS SELECT * FROM [НОВЫЙ РЕЗУЛЬТАТ]…

Read the rest

Мар 16 2011

Генерация отчета на основании SQL запроса

Oracle, SQL
no comments

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

Read the rest

Мар 09 2011

Магический квадрат Gartner СУБД для хранилища данных

Базы данных, Хранилище данных
no comments

Magic Quadrant for Data Warehouse Database Management Systems 3-го февраля 2011 года Gartner Group обновил магический квадрат лидеров рынка по СУБД для хранилищ данных. Данные на январь 2011: Относительно января 2010 произошли следующие изменения: — Greenplum куплена EMC 29 июля 2010 (сейчас известна как EMC/Greenplum.) — Netezza куплена IBM on 11 ноября 2010 (сейчас известна…

Read the rest

Мар 04 2011

Пользовательские функции агрегации данных в SQL

Oracle, SQL
2 comments

User-Defined Aggregate Functions В SQL присутствует много функций, которые манипулируют блоком данных заданных группировкой и выдающие итоговый результат. В Oracle представлен следующий список функций: AVG, COLLECT, CORR, COUNT, COVAR_POP, COVAR_SAMP, CUME_DIST, DENSE_RANK, MAX, MEDIAN, MIN, PERCENTILE_CONT, PERCENTILE_DISC, PERCENT_RANK, RANK, REGR_ (Linear Regression) Functions, STATS_BINOMIAL_TEST, STATS_CROSSTAB, STATS_F_TEST, STATS_KS_TEST, STATS_MODE, STATS_MW_TEST, STATS_ONE_WAY_ANOVA, STATS_T_TEST_*, STATS_WSR_TEST, STDDEV, STDDEV_POP, STDDEV_SAMP,…

Read the rest

Мар 02 2011

Постановка по формированию потока платежей (Cash Flow)

SQL
no comments

Сегодня закончил оптимизацию формирования входных данных используемых KRM при формировании нестандартных потоков платежей. Ранее алгоритм был реализован на PLSQL с кучей временных таблиц, теперь это один SQL. Получен результат выполнения — 53 секунды вместо 37 минут (тот же объем данных и «железо»). Реализация выполнена для разовых кредитов, кредитных линий (по каждому траншу) и облигаций. Результаты…

Read the rest

Фев 16 2011

Определение попытки обновления колонки

Oracle
no comments

Detecting the DML Operation That Fired a Trigger Вчера у меня спросили, как определить в триггере попытку обновления заданной колонки. Я был озадачен, так как простого способа не знал. Возникло несколько идей, некоторые оказались не состоятельными. Описание задачи: Необходимо определить попытку обновления колонки С1 в таблице А. Дата таблица: CREATE TABLE A ( C1 VARCHAR2(30…

Read the rest

Фев 14 2011

Получение последнего значимого значения в блоке

Oracle, SQL
2 comments

first non-null value in the set. Очень часто в запросах необходимо получить в указанном блоке последнее значимое значение. В SQL это делается просто. Описание задачи: Для каждой записи произвольной выборки T, необходимо для значения NULL в поле V вставить последнее NOT NULL значение из блока B упорядоченное по S, используя только один SQL с минимальными…

Read the rest

Янв 27 2011

ORA-12154. Тернистый путь

Oracle
1 comments

Даже хорошо знающий Oracle профессионал может быть поставлен в тупик простой, но не логичной ошибкой. Описание задачи: Необходимо обеспечить успешное соединение клиентского ПО Toad 10.0 с базай Oracle 10.2 на 64-х разрядной операционной системе. Цель: Устранить ошибку ORA-12154 при работе клиентского ПО. Описание среды: ОС: Windows 2003 Server 64 bit SP2 Клиент Oracle: Oracle 10R2 32 bit Клиентское ПО: Toad 10,…

Read the rest

Янв 12 2011

Размножение строк в запросе SQL

Oracle, SQL
5 comments

Очень часто в запросах необходимо увеличить количество строк выборки на заданный множитель. В SQL это делается просто. Описание задачи: Каждую запись произвольной выборки T воспроизвести N раз (заданное количество) используя только один SQL с минимальными недостатками. Результат должен содержать полную входную строку и номер копии. Цель: Описать возможные варианты и предложить наилучший по критериям: понятность…

Read the rest