За последние несколько месяцев я сталкивался с несколькими ситуациями, когда устаревшие SQL-серверы SQL возвращают одну таблицу, состоящую в основном из избыточной информации.
Пример:
Выберите CustomerID, CustomerEmail, CustomerAddress, InventoryLineItem, ShipQty из ...
Возвращает:
55 a@b.com 723 StreetName InvLineItem#1 45
55 a@b.com 723 StreetName InvLineItem#2 42
55 a@b.com 723 StreetName InvLineItem#3 1
55 a@b.com 723 StreetName InvLineItem#4 5
55 a@b.com 723 StreetName InvLineItem#5 200
55 a@b.com 723 StreetName InvLineItem#6 7045
(первые 3 поля никогда не меняются)
Поскольку я являюсь единственным разработчиком проекта, я начал разбивать его на два оператора select. (Я также работаю над получением кода .NET)
выберите CustomerID, CustomerEmail, CustomerAddress из ....
Returns: 55 a@b.com 723 Streetname <-- 1 record
выберите InventoryLineItem, ShipQty из ....
Возвращает:
LineItem#1 45
LineItem#2 42
LineItem#3 1
и т.д.
Очевидно, что результирующий набор данных в .NET меньше, но мне действительно мешает иметь иногда 10 полей в операторе выбора, которые при любых обстоятельствах всегда одинаковы. Некоторые из запросов могут даже возвращать десятки тысяч записей.
Я чувствую, что здесь все правильно, но опять же, я не профессионал по SQL.
Есть ли какие-либо причины для меня, чтобы избежать этой практики?
Заранее спасибо за ваше время.