|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Serg Vasiltsoff 2:5020/400 03 Apr 2001 12:54:43 To : All Subject : Re: Дремина хитрость 2 --------------------------------------------------------------------------------
> :) Ок, что будет быстрее выполнятся вот это:
> SELECT
> (SELECT FNAME FROM Table1 T WHERE T.KEY=main.ref1) as PoleRef1,
> (SELECT FNAME FROM Table2 T WHERE T.KEY=main.ref2) as PoleRef2,
> (SELECT FNAME FROM Table3 T WHERE T.KEY=main.ref3) as PoleRef3,
> (SELECT FNAME FROM Table4 T WHERE T.KEY=main.ref4) as PoleRef4,
> (SELECT FNAME FROM Table5 T WHERE T.KEY=main.ref5) as PoleRef5
> pole1,
> pole2,
> poleN
> FROM TAbleMain main
>
> или вот это:
>
> SELECT
> PoleRef1,
> PoleRef2,
> PoleRef3,
> PoleRef4,
> PoleRef5,
> pole1,
> pole2,
> poleN
> FROM TAbleMain main
>
> ?
Ты будешь сильно удивлен, но для больших таблиц первый вариант
предпочтительнее, если мы говорим об одном и том же. Все дело в объеме
данных, которые придется серверу подчитать с диска. Если TableMain -
огромная таблица, распадающаяся при нормализации на маленькие
Table1,...,TableNN, то первый вариант предпочтительнее с точки зрения
производительности, администрирования, гибкости, ..., и всего прочего. Да и
размер занимаемого базой места (с учетом индексов) в первом варианте может
быть вдвое меньше, чем во втором.
Hо, еще раз оговорюсь, это все справедливо для случая, когда большая
TableMain может быть нормализована и развалена на кучку мелких
Table1,...,TableNN
--- ifmail v.2.15dev5
* Origin: Lime Systems (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/1200577cedbd0.html, оценка из 5, голосов 10
|