|
|
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Не в первый раз подниму вопрос, который периодически у меня всплывает и мучает меня. Хочется разобраться и как-то для себя понять или формализовать алгоритм принятия решения о добавлении колонки. Итак, допустим есть сущность, и нам понадобилось добавить новый атрибут к этой сущности. На физическом уровне его можно добавить в ту же таблицу, а можно добавить и в отдельную таблицу. Рассмотрим конкретные примеры: 1) Есть таблица customers: [CustomerID, Name, Address, ...]. И теперь нам нужно сделать опцию, чтобы клиентам можно было делать рассылку изменений в их заказах. Т.е. для каждого клиента можно будет выбрать — делать ему ежедневную рассылку или нет. К тому же надо сохранять timestamp последней рассылки (чтобы знать какие изменения в заказах включать в следующую рассылку). Основных варианта решения два: а) добавить в таблицу customers поле SendUpdates (boolean) и поле LastUpdatesSentTS (timestamp). б) создать отдельную таблицу customer_updates_notifications: [CustomerID, LastUpdatesSentTS]. Необходимости в поле SendUpdates в этом случае не будет, т.к. отправлять ли уведомления клиенту будет определяться наличием соответствующей строки в таблице customer_updates_notifications. Допустим, что мы твердо уверены что дополнительных заморочек по этому в будущем не появится (т.е. не надо будет сохранять к примеру историю отправки нотификаций и т.д.). Какой вариант выбрали бы вы и почему? Зависит ли ваше решение от того сколько у нас клиентов — 100 или 10000 или 100000? Зависит ли ваше решение от того у какого процента клиентов будет выбрана опция рассылки (<10%, 50%, 90%)? Дополнительно, условимся что только очень малой части запросов на выборку будет нужна данная информация). Кстати, стали бы вы включать свойство SendUpdates & LastUpdatesSentTS в класс Customer в модели предметной области в коде? Или работали бы с этим атрибутом просто напрямую использую DAL-методы (т.е. не сохраняя их в свойствах сущности Customer)? 2) Есть таблица order_lines [OrderID, ManufacturerID, PartNumber, Quantity, ...]. И теперь нам нужно сделать опцию, чтобы менеджеры могли проставлять комментарий к позиции заказа. Допустим указать коментарий "запчасть не найдена в пришедщем от поставщика грузе" или "клиент попросил не превышать цену" и т.д. Но, допустим, мы подозреваем что через месяц мы решим сохранять timestamp установки комментария, а еще через полгода — возможно понадобится сохранять ID менеджера, который поставил комментарий. В общем-то те же самые 2 варианты основные: а) добавить в таблице order_lines колонки Comment, а в будущем еще и CommentTS и CommentManagerID. б) создать отдельную таблицу order_line_comments: [OrderLineID, Comment]. В будущем в нее добавятся колонки CommentTS и CommentManagerID. Какой вариант выбрали бы вы и почему? Зависит ли ваше решение от того у какого процента позиций будут указаны комментарии (1%, 10%, 50%)? Так же, дополнительно условимся, что только малой части запросов на выборку будет нужна информация о комментариях (это действительно так). --- По первому примеру — лично у меня 50 на 50, не знаю как будет лучше. По второму примеру склоняюсь к тому что лучше вынести эти атрибуты в отдельную таблицу (т.е. вертикальное партицирование со всеми вытекающими плюсами и минусами). А собственно какие плюсы и минусы в каждом варианте? Давайте подумаем: В случае добавления колонок в ту же таблицу мы получаем относительную простоту (Т.к. не нужно заморачиваться с отдельной таблицей. И опустим случай когда у нас в таблице 100 миллионов строк и добавление колонки в такую таблицу может занять часы.). Не будет кучи маленьких таблиц с доп. атрибутами и не будет кучи джоинов. Но кстати не нарушает ли это (я про первый вариант с одной таблицей говорю) нормализацию? Вроде как нет, но может я ошибаюсь? К тому же в случае больших таблиц может быть неэффективная трата дискового пространства (например будет 90% строк со значением NULL в такой колонке). Во втором варианте мы как бы отделяем "менее основные" атрибуты в отдельную таблицу, иногда отделяем группу атрибутов. Но этот вариант чуть более заморочный, в будущем потребует джоинов, да и еще меня смущает — не появится ли через пару лет куча мелких таблиц для таких доп. атрибутов? С соответствующей кучей джоинов.. Плюсы от вертикального партицирования известные: меньше места на диске, быстрее операции чтения и сохранения данных (в одной физической странице (блоке) будет умещаться больше строк, т.е. за раз сможем прочитать или сохранить больше строк), некоторые запросы могут начать выполняться быстрее (да да, несмотря на джоины, подробнее например здесь ), ну и можно разнести индексы по разным таблицам — это тоже может быть плюсом. Вот такие вот соображения. Я хоть по базам данных много не читал (полкнижки по дизайну БД, полкниги по SQL и полкниги по транзакциям и concurrency control ), но все равно нигде никогда не видел, где бы объяснялось как правильно размышлять и поступать в таких ситуациях. Если кто знает хороший материал по конкретной данной проблеме — буду очень рад ссылке. В общем жду ваших мнений, особенно интересует мнение опытных специалистов по БД. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 17:19 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
Размер, занимаемый null-полями в конце записи - это редко когда серьёзное соображение. С физической точки зрения есть одно соображение.... добавление поля с not null / default значением в таблицу может оказаться очень дорогой операцией для большой таблицы. Настолько, что может быть осмысленно сделать отдельную таблицу только чтобы не останавливать production. Если не считать этого, то я бы сказал, надо просто решить, добавляем ли мы атрибут-два или добавляем новую сущность. Критерии сущности кроме интуитивных - вероятное нарастание списка атрибутов, вероятное использование для других похожих задач, запросы именно к этим данным без интереса к другим. Например, "рассылка" - очень похожа на отдельную сущность. Потому как завтра у клиента появятся другие рассылки, а послезавтра появится рассылка для сотрудников. Если таки атрибут - остаётся решить, весомее ли преимущества или недостатки вертикального партиционирования. По умолчанию имхо второе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 18:30 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
Единого рецепта нет. В каждой конкретной ситуации решение принимается на основании сравнительного анализа. Аспекты, на которые следует обратить внимание не раз обсждались на форуме. Поищи по слову EAV, например. Так, для оракла случай "в таблице 100 миллионов строк и добавление колонки в такую таблицу может занять часы", не подходит. Колонка добавляется мгновенно и ничего не весит, если конечно default null. Для других БД, добавление колонки может стать проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 18:36 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
softwarerЕсли не считать этого, то я бы сказал, надо просто решить, добавляем ли мы атрибут-два или добавляем новую сущность. Критерии сущности кроме интуитивных - вероятное нарастание списка атрибутов, вероятное использование для других похожих задач, запросы именно к этим данным без интереса к другим. Например, "рассылка" - очень похожа на отдельную сущность. Потому как завтра у клиента появятся другие рассылки, а послезавтра появится рассылка для сотрудников. По поводу рассылки для сотрудников - она (если вдруг появится) же будет отдельную таблицу использовать ведь.. Это я к тому что как это влияет на принятие решения? softwarerЕсли таки атрибут - остаётся решить, весомее ли преимущества или недостатки вертикального партиционирования. По умолчанию имхо второе. А какие недостатки вертикального партицирования (кроме 1) необходимости доп. джоинов в некоторых запросах 2) размножения маленьких табличек) вы видите? А в целом очень понравился ваш ответ. Четкий, логичный, привели примеры критериев определения отдельной сущности. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 19:15 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
MozgCПо поводу рассылки для сотрудников - она (если вдруг появится) же будет отдельную таблицу использовать ведь.. Не факт. Это уже как сдизайнить. MozgCА какие недостатки вертикального партицирования (кроме ... вы видите? Главный имхо - неинтуитивность структуры БД. Это вещь, про которую нужно помнить, которая не поддерживается визуальными инструментами итп. Пользоваться БД в целом становится сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 19:37 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
softwarerНе факт. Это уже как сдизайнить. Придется отказаться от FK. Имхо это не есть красиво. Или вы как бы такое сдизайнили? softwarerГлавный имхо - неинтуитивность структуры БД. Это вещь, про которую нужно помнить, которая не поддерживается визуальными инструментами итп. Пользоваться БД в целом становится сложнее. Мне кажется что при соответствующем именовании таблиц и наличии FK все достаточно неплохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 19:46 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
MozgCПридется отказаться от FK. Не факт. MozgCИли вы как бы такое сдизайнили? Это уже совершенно отдельная тема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 20:00 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
MozgCкритериев определения отдельной сущности. Только не путайте сущности и таблицы. Одну и ту же сущность (понятие суть логическое), можно реализовать множеством способов. Сама по себе горизонтальная или вертикальная декомпозиция таблиц сущности не добавляет. Сущность, с точки зрения реализации для конкретной реляционной СУБД может даже не быть в 1НФ, т.е. в процессе реализации сущности в терминах реляционной БД потребуется её нормализация, и как следствие вертикальная декомпозиция. Апофигеем декомпозиции (но не реляционной нормализации) является форма EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 20:01 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
mcureenabТолько не путайте сущности и таблицы. Я не путаю. Вообще я, по-моему, привел достаточно конкретные примеры и контекст, а вы мне зачем-то про EAV.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 20:10 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
В принципе, вы до всего что я скажу, догадались сами, но все же: 1. если некая информация (столбцы) в customers нужна не всегда, ее лучше вынести в отдельную таблицу. Более того, в отношении рассылки я бы предположил, что могут быть группы рассылок, тогда все еще проще - отдельная таблица. Вопрос по поводу производительности может возникнуть "на ходу". Например, у нас был проект, где примерно 700 тысяч пользователей играли в онлайн игры. Вначале по ним была сделана "широкая" таблица с тучей столбцов, которые были частично заполнены, частично нет. В Firebird это не проблема, т.к. записи имеют динамическую длину. Но. Проблемой оказалось то, что поле nickname заполняют только 30% пользователей, а в базе со временем появились сервисы "рейтингования", которые выводили инфу так и сяк. И запросы стали подтормаживать. Решение было такое - вынесли id юзера и nickname (и еще 2-3 столбца) в отдельную таблицу, получилось 1-1. Но, записей в ней было примерно 250 тысяч, и поскольку размер записи стал небольшой, запросы рейтингования стали летать. Вот Вам пример упомянутого "вертикального партиционирования". Стали бы мы этой фигней заниматься, если бы пользователей было до 100 тысяч? Думаю, вряд-ли. Кстати, вот еще пример влияния архитектуры - если бы на том же Firebird в customer воткнуть столбец LastUpdatesSentTS и т.п., и периодически его обновлять (чаще, чем остальные столбцы), то это вызовет появление новых версий, а следовательно, со временем таблица будет разрежена до определенной степени, что тоже не улучшит производительность. 2. примерно то же самое. Понятно что при раздельном хранении если нужно выводить строки в гриде как основной так и дополнительной таблицы, то придется вместо простого select * from customer писать join. Но тут для вопроса 2 может получиться, что коммент к заказу нужно смотреть только во время просмотра конкретного заказа, а не списка. Тогда никакие join не нужны, и при показе формы заказа достаточно обратиться к таблице с комментами, выбрав оттуда всего одну запись. Так что, здесь решение может зависеть от выбранного способа вывода информации пользователю. MozgcЕсли кто знает хороший материал по конкретной данной проблеме — буду очень рад ссылке. Я когда-то был хорошо подкован Дейтом и др., но многие вещи пришлось осознавать на практике, пробуя тот или иной вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 00:17 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
kdv, Спасибо за ваш ответ. Я кстати пока его читал вспомнил, что обновление например LastStatusSentTS приведет к автоматическому обновлению колонки TS (TIMESTAMP ... ON UPDATE CURRENT_TIMESTAMP), что не всегда может быть желательным. Это тоже надо учитывать. И еще я тут вспомнил, что надо для рассылки сделать возможность указания отдельного email'а у клиента, а так же указания типа рассылки (полная или сокращенная) - так что уже образовывается группа связанных атрибутов и это дополнительный аргумент в пользу выноса в отдельную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 00:30 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
kdvРешение было такое - вынесли id юзера и nickname (и еще 2-3 столбца) в отдельную таблицу, получилось 1-1. Но, записей в ней было примерно 250 тысяч, и поскольку размер записи стал небольшой, запросы рейтингования стали летать. Это опять же специфика реализации СУБД. В оракле хватило бы индекса по этим полям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 13:22 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
mcureenabЭто опять же специфика реализации СУБД. Вы еще скажите, что если бы мы просто взяли новый сервер, тоже было бы быстрее. Под "торможением" я имел в виду выполнение запроса около секунды. А надо было меньше. Оракл, кстати, на том железе, на котором был тот сервер, вообще бы умер от натуги. mcureenabВ оракле хватило бы индекса по этим полям. ерунду какую-то пишете. Не знаете ни запросов, ни настоящей структуры, и предлагаете "индексы по полям" создать. По каким полям? по nickname? А зачем? Это ведь сугубо информационный столбец (хотя индекс там и был, для поиска при логине). Записи с nickname "плотнее" что-ли будут расположены в таблицах из-за создания индекса, и будет меньше трат на i/o страниц данных? Ну допустим, кластерный индекс бы помог, но опять же, он там не уперся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 18:08 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
kdv По каким полям? по nickname? А зачем?Oracle не хранит в индексе null значения. Индекс может быть довольно компактным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 18:50 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
kdvОракл, кстати, на том железе, на котором был тот сервер, вообще бы умер от натуги. Что за железо? Количество и частота CPU, RAM? Просто интересно почему на моём старом ПК оракл не дохнет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 19:03 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
SERG1257Oracle не хранит в индексе null значения. Индекс может быть довольно компактным Да, индекс компактный, в Firebird он тоже сам по себе компактный (упакованный). Но записи-то на диске находятся в разноброд. И даже если предположить равномерное распределение заполненных полей nickname и незаполненных как 30/70, то как ни крути, на страницах данных (!) таблицы пользователей при рейтинговых запросах нужны только 30% записей. Т.е. 70% io идет вхолостую. И не просто 70%, а эти страницы заполнены здоровенными записями пользователей. Вынос части столбцов и записей с nickname is not null дал вовсе не 70% прирост в скорости, а в несколько раз. mcureenabКоличество и частота CPU, RAM? Просто интересно почему на моём старом ПК оракл не дохнет. просто поверьте. сервер был двухпроцессорный, дешевый, обслуживал всю систему, стоял где-то рядом с Twins Tower в NY. 11 сентября серверу настал крандец, точные спецификации не сохранились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 20:26 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
И еще, извините если что, но гражданам, которые полагают, что Оракл это самая быстрая СУБД абсолютно во всех случаях и на всех типах конфигураций, я рекомендую пройти в раздел "Сравнение СУБД". А то получается, что вертикальное партиционирование в Оракле не нужно, просто потому что он и так все пережует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 20:30 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
kdvЗаписи с nickname "плотнее" что-ли будут расположены в таблицах из-за создания индекса, Записи с nickname будут "плотнее" расположены в индексе, а таблицу вообще не потребуется читать. kdvи будет меньше трат на i/o страниц данных? Да. kdvто как ни крути, на страницах данных (!) таблицы пользователей при рейтинговых запросах нужны только 30% записей. Т.е. 70% io идет вхолостую. Вот коллега и подсказал Вам, что в оракле индекс убрал бы эти 70% ио вхолостую. А Вы полезли ругаться. Я, кстати, был уверен, что IB в последних версиях этому научился, но судя по Вашей реакции таки нет. Правда, помню также, на IB были загрузы с версионностью индексов, может дело в этом. kdvОракл, кстати, на том железе, на котором был тот сервер, вообще бы умер от натуги Просто поверьте. Вопросами религии заведуют на других форумах. kdvА то получается, что вертикальное партиционирование в Оракле не нужно, просто потому что он и так все пережует. Основную причину вертикального партиционирования в Oracle я уже назвал выше, а mcreenab подтвердил - необходимость добавления not null колонок в очень большую таблицу, вызывающая недопустимый простой production и/или огромное число chained rows. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 21:01 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
softwarerЗаписи с nickname будут "плотнее" расположены в индексе, а таблицу вообще не потребуется читать. OMG. опять догадки, и непоколебимая вера что "индекс спасет". Индекс спасет только если выбирается один проиндексированный столбец nickname. И да, в IB/FB это не сработает, потому что хранить номера транзакций в индексе более затратно, чем лазить за "видимыми" версиями в таблицу. softwarerОсновную причину вертикального партиционирования в Oracle я уже назвал выше, а mcreenab подтвердил позволю себе не поверить в волшебство. Ваши аргументы это "в Оракле вот это происходит вот так" исключает "вот эдак", а про синтетические ситуации или тесты мы не говорим. Точно так же мы не говорим только про Оракл. А добавление not null столбца и заполнение его в большой таблице для любого сервера вызовет "простой production". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 18:45 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
в дополнение, все-таки хочу понять чудеса: softwarerВот коллега и подсказал Вам, что в оракле индекс убрал бы эти 70% ио вхолостую Код: plaintext 1. 2. по a построен индекс. 70% значений столбца a представляют собой null. На страницах данных записи расположены вперемешку, с примерно 30% not null и 70% null. Вопрос - каким образом Оракл "убирает 70% ио вхолостую"? Мне нужно получить 2 столбца - a и b. A в индексе, и если бы выбирался только он, тут все понятно. А столбец b ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 18:57 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
kdvA в индексе, и если бы выбирался только он, тут все понятно. А столбец b ? kdvРешение было такое - вынесли id юзера и nickname (и еще 2-3 столбца) в отдельную таблицу, Для понимания достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 23:15 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
kdvИ да, в IB/FB это не сработает, Ну не повезло вам. Со всеми бывает. Наконец-то Вы подтвердили правоту того, что mcureenab сказал одной короткой фразой. И стоило поднимать столько шума. kdvsoftwarerkdvА то получается, что вертикальное партиционирование в Оракле не нужно, Основную причину вертикального партиционирования в Oracle я уже назвал выше, а mcreenab подтвердил Точно так же мы не говорим только про Оракл. Я восстановил потёртую Вами квоту, чтобы яснее было, о чём мы говорим. Потому как ситуация "Вы спросили про оракл, я ответил про оракл, а теперь оказывается, что мы говорим не про оракл" не очень.. красива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 23:22 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
softwarerДля понимания достаточно. как выясняется, недостаточно. softwarerЯ восстановил потёртую Вами квоту, чтобы яснее было, о чём мы говорим. с использованием индексов Ораклом все и так известно, и MS SQL работает точно так же. Не я начал упоминать оракл mcureenabВ оракле хватило бы индекса по этим полям. Я сразу сказал что не хватило бы. Где ответ на мой вопрос про 70% "ненужных" на странице записей? Впрочем, можно не отвечать, и так все ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 10:46 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
kdvsoftwarerДля понимания достаточно. как выясняется, недостаточно. Если недостаточно, подумайте над совершенно прямой подсказкой, данной в изначальной фразе mcureenab: mcureenabВ оракле хватило бы индекса по этим полям. kdvЯ сразу сказал что не хватило бы. Ну и лопухнулись. При этом сейчас то ли поняли, но делаете вид, что не поняли, то ли не поняли, но делаете вид, что поняли. kdvГде ответ на мой вопрос про 70% "ненужных" на странице записей? 1. В изначальной фразе mcureenab 2. В тексте Вашего вопроса 3. В моём ответе с дополнительной подсказкой. kdvВпрочем, можно не отвечать, и так все ясно. Ну то есть по сравнению с изначальной ситуацией ничего не изменилось, Вам по-прежнему всё ясно. Аллилуйя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 11:37 |
|
||
|
Дополнительные атрибуты сущности: добавлять в ту же таблицу или в отдельную?
|
|||
|---|---|---|---|
|
#18+
softwarerНу и лопухнулись. При этом сейчас то ли поняли, но делаете вид, что не поняли, то ли не поняли, но делаете вид, что поняли. Это Вы делаете вид, что не поняли. Я задал конкретный вопрос про select a, b, а не про выборку ОДНОГО "индексного" столбца из таблицы. Вы начинаете ссылаться опять на слова про индекс. Про это я и так знаю, и уже сказал, что да - это есть и в Оракле и в MS SQL. В Оракле "хватило бы" индекса по этим полям, ЕСЛИ БЫ вопрос был только в этом. А так Вы пытаетесь своей демагогией доказать, что партиционирование в Оракле практически не нужно. То есть, у Оракла всегда страницы данных только нужными данными бывают заполнены, и всегда эти страницы заполнены по максимуму, и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 12:03 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36486923&tid=1542820]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 494ms |

| 0 / 0 |
