Разработка программного средства, позволяющего оптимизировать SQL-скрипты

Изучение и характеристика особенностей пользовательского интерфейса. Исследование архитектуры приложения и основных классов, связанных с парсером. Рассмотрение и анализ сущности teradata database – системы массовой параллельной обработки данных.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 31.10.2016
Размер файла 418,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

bal.BALANCE_RUR

FROM

TEST_DB.CLIENT_ACC src

INNER JOIN DET_DB.ACCOUNT_BALANCE bal

ON

(

src.ACCOUNT_ID = bal.ACCOUNT_ID

AND CAST('2016-05-31' AS DATE) BETWEEN bal.ACTIVE_FROM_DT

AND bal.ACTIVE_TO_DT

)

WHERE

bal.BALANCE_RUR >= 100000

) WITH DATA PRIMARY INDEX (ACCOUNT_ID);

Повторяющийся код

Исходный код

CREATE TABLE TEST_DB.AGREEMENTS_OPENED AS

(

SELECT

agr.REPORT_DATE,

agr.AGREEMENT_ID,

agr.BALANCE_NEW,

agr.BALANCE_OLD,

'ACTIVE' AS AGREEMENT_TYPE

FROM AGG_DB.AGREEMENT_BALANCE_MONTH agr

WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)

AND agr.BALANCE_NEW <> 0

) WITH DATA PRIMARY INDEX (AGREEMENT_ID);

CREATE TABLE TEST_DB.AGREEMENTS_CLOSED AS

(

SELECT

agr.REPORT_DATE,

agr.AGREEMENT_ID,

agr.BALANCE_NEW,

agr.BALANCE_OLD,

'CLOSED' AS AGREEMENT_TYPE

FROM AGG_DB.AGREEMENT_BALANCE_MONTH agr

LEFT JOIN AGG_DB.AGREEMENTS_RESTRUCT rest

ON

(

rest.OLD_AGREEMENT_ID = agr.AGREEMENT_ID

AND agr.REPORT_DT BETWEEN rest.ACTIVE_FROM_DT

AND rest.ACTIVE_TO_DT

)

WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)

AND agr.BALANCE_NEW = 0

AND agr.BALANCE_OLD <> 0

AND rest.NEW_AGREEMENT_ID IS NULL

) WITH DATA PRIMARY INDEX (AGREEMENT_ID);

CREATE TABLE TEST_DB.AGREEMENTS_RESTRUCT AS

(

SELECT

agr.REPORT_DATE,

agr.AGREEMENT_ID,

agr.BALANCE_NEW,

agr.BALANCE_OLD,

'RESTR' AS AGREEMENT_TYPE

FROM AGG_DB.AGREEMENT_BALANCE_MONTH agr

INNER JOIN AGG_DB.AGREEMENTS_RESTRUCT rest

ON

(

rest.OLD_AGREEMENT_ID = agr.AGREEMENT_ID

AND agr.REPORT_DT BETWEEN rest.ACTIVE_FROM_DT

AND rest.ACTIVE_TO_DT

)

WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)

AND agr.BALANCE_NEW = 0

AND agr.BALANCE_OLD <> 0

) WITH DATA PRIMARY INDEX (AGREEMENT_ID);

CREATE TABLE TEST_DB.AGREEMENTS_TYPE_REPORT AS

(

SELECT

src.REPORT_DT,

src.AGREEMENT_TYPE,

sum(src.BALANCE_NEW) as SUM_NEW,

sum(src.BALANCE_OLD) as SUM_OLD

FROM (

SELECT * FROM TEST_DB.AGREEMENTS_OPENED

UNION ALL

SELECT * FROM TEST_DB.AGREEMENTS_CLOSED

UNION ALL

SELECT * FROM TEST_DB.AGREEMENTS_RESTRUCT

) src

GROUP BY 1, 2

) WITH DATA NO PRIMARY INDEX;

Исправленный код

CREATE TABLE TEST_DB.AGREEMENTS_BAL AS

(

SELECT

agr.REPORT_DATE,

agr.AGREEMENT_ID,

agr.BALANCE_NEW,

agr.BALANCE_OLD

FROM AGG_DB.AGREEMENT_BALANCE_MONTH agr

WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)

AND (agr.BALANCE_NEW <> 0

OR (agr.BALANCE_NEW = 0

AND agr.BALANCE_OLD <> 0))

) WITH DATA PRIMARY INDEX (AGREEMENT_ID);

CREATE TABLE TEST_DB.AGREEMENTS_CLOSED AS

(

SELECT

agr.REPORT_DATE,

agr.AGREEMENT_ID,

agr.BALANCE_NEW,

agr.BALANCE_OLD,

rest.NEW_AGREEMENT_ID

FROM TEST_DB.AGREEMENTS_BAL agr

LEFT JOIN AGG_DB.AGREEMENTS_RESTRUCT rest

ON

(

rest.OLD_AGREEMENT_ID = agr.AGREEMENT_ID

AND agr.REPORT_DT BETWEEN rest.ACTIVE_FROM_DT

AND rest.ACTIVE_TO_DT

)

WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)

AND agr.BALANCE_NEW = 0

AND agr.BALANCE_OLD <> 0

) WITH DATA PRIMARY INDEX (AGREEMENT_ID);

CREATE TABLE TEST_DB.AGREEMENTS_TYPE_REPORT AS

(

SELECT

src.REPORT_DT,

src.AGREEMENT_TYPE,

sum(src.BALANCE_NEW) as SUM_NEW,

sum(src.BALANCE_OLD) as SUM_OLD

FROM (

SELECT

agr.REPORT_DATE,

agr.AGREEMENT_ID,

agr.BALANCE_NEW,

agr.BALANCE_OLD,

'ACTIVE' AS AGREEMENT_TYPE

FROM TEST_DB.AGREEMENTS_BAL agr

WHERE agr.BALANCE_NEW <> 0

UNION ALL

SELECT

agr.REPORT_DATE,

agr.AGREEMENT_ID,

agr.BALANCE_NEW,

agr.BALANCE_OLD,

'CLOSED' AS AGREEMENT_TYPE

FROM TEST_DB.AGREEMENTS_CLOSED agr

WHERE agr.NEW_AGREEMENT_ID IS NULL

UNION ALL

SELECT

agr.REPORT_DATE,

agr.AGREEMENT_ID,

agr.BALANCE_NEW,

agr.BALANCE_OLD,

'RESTR' AS AGREEMENT_TYPE

FROM TEST_DB.AGREEMENTS_CLOSED agr

WHERE agr.NEW_AGREEMENT_ID IS NOT NULL

) src

GROUP BY 1, 2

) WITH DATA NO PRIMARY INDEX;

Размещено на Allbest.ru


Подобные документы

  • Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы.

    курсовая работа [1,2 M], добавлен 16.08.2012

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

    курсовая работа [664,4 K], добавлен 26.08.2012

  • Требования к аппаратным и операционным ресурсам. Логическая и физическая организация. Состав основных классов проекта. Технико-экономическое обоснование разработки программного средства. Задержки при обработке данных. Разработка интерфейса приложения.

    дипломная работа [4,4 M], добавлен 16.06.2017

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

    курсовая работа [710,2 K], добавлен 26.07.2014

  • Характеристика основных потоков данных, существующих на предприятии. Способы и средства для разработки программного обеспечения. Проектирование пользовательского интерфейса. Разработка слоя взаимодействия с базой данных. Разработка слоя бизнес сервисов.

    дипломная работа [750,8 K], добавлен 10.07.2017

  • Имитационное моделирование деятельности "Центра обслуживания абонентов". Диаграммы потоков данных. Выявление вариантов использования. Моделирование видов деятельности и взаимодействий. Проектирование пользовательского интерфейса и архитектуры приложения.

    дипломная работа [1,3 M], добавлен 24.10.2010

  • Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.

    курсовая работа [1,1 M], добавлен 04.09.2014

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

    курсовая работа [395,4 K], добавлен 28.04.2015

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

    курсовая работа [3,3 M], добавлен 26.01.2013

  • Требования к подсистеме создания Scorm-пакетов. Построение диаграммы потоков данных. Проектирование программного средства. Выбор средств реализации подсистемы. Организация взаимодействия приложения с базой данных. Реализация пользовательского интерфейса.

    курсовая работа [634,2 K], добавлен 16.08.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.