Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
ChAВ теории РБД мне также не встречалось понятие CLUSTERED, это опять же относится к реализации Никто и не спорит. А при чем тут голая теория-то вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 14:45 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Ggg_old2kassandra: БД - опердень банка. Таблиц - сотни, процедур - аналогично. Есть основные таблицы (например таблица платежей и остатков), есть куча справочников (например коды банков, коды операций, исполнителей и.т.п). В таблице платежей - за все время записей около 20 млн. Констрэйнты не используются. При операции ввода или проведения нового платежа все проверки по любому делаются только в соответствующей ХП. Как бы работала система по скорости, если бы на таблицу платежей еще бы был констрэйнт практически на все ее поля я не знаю - но предполагаю, что-бы тормоз был конретный, хотя я не имел опыта работы с большими БД с интенсивной нагрузкой аналогичной нашей. И не узнаешь, пока не попробуешь :) Имхо проблемы быстродействия работы БД нужно решать мощностью используемых ресурсов, а не отказом от механизма целостности и непротиворечивости данных, тем более в банковских системах. Ну и, разумеется, не забывать об оптимизации запросов. Кстати, на чем все это реализовано (СУБД? Hard?), если не секрет? Конечно, случаи отказа от констрэйнтов бывают, но чтобы в БД из нескольких сотен таблиц не было ни одного к-та..... Но хоть индексы то у вас есть?:) wbr, k ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 14:57 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Реализовано на Sybase ASE 12.5 on WinNT. Хард - 4xCPU Xeon (сколько гигагерцев точно не помню)+Raid10+4Gb RAM. Я думаю можно поставить вопросы так: 1. В каких случаях на практике отказ от констрэйнтов допустим? Можно ли сказть, что ХП ориентированная БД с жестким котролем за изменениями - это допустимый случай? 2. Как использование констрэйнтов влияет на производительность? Можно ли ее как-то оценить? Если в форуме есть разработчики или эксплуататоры биллинговых систем в телекомах, то интересно узнать - использутся в их БД констрэйнты на нагруженную основную таблицу (наверное это таблица звонков)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:45 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Скорее всего это продукт фирмы Диасофт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:48 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
автор Как бы работала система по скорости, если бы на таблицу платежей еще бы был констрэйнт практически на все ее поля я не знаю - но предполагаю, что-бы тормоз был конретный Многие из нас ( и я в том числе) страдают тем, что думают, но не проверяют это экспериментом. Тормозов не будет. Посмотри другие банковские системы. Просто летает все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:51 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
На самом деле они там отказались от констрейнов на сервере не по вопросам производительности. У них были другие причины. 1) Для WF Отказаличь потому, что она многоплатформенная т.е может запускаться на Oracle,MS SQL, битрив 2) В 5 NT отказались потому что без констрейнов на базе проще писать ПАТЧИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:58 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Ggg_old1. В каких случаях на практике отказ от констрэйнтов допустим? Можно ли сказть, что ХП ориентированная БД с жестким котролем за изменениями - это допустимый случай? Да. Но не только, в случае пакетных изменений/репликации если выбирать между references и реализацией на триггерах, выбирают обычно первое ввиду большей гибкости... Ggg_old2. Как использование констрэйнтов влияет на производительность? Можно ли ее как-то оценить? ... и скорости. Оценивать сей факт всегда надо по месту, на конкретных данных/запросах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 16:00 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовА при чем тут голая теория-то вообще? Сергей ВаскецовВерно, на самом деле я немного утрирую, только для CLUSTERED PK он обязан создаваться (по смыслу CLUSTERED), для NONCLUSTERED тоже не обязательно. Тогда утверждение должно быть в контексте конкретной СУБД, а не вообще. Пример: в MS SQL 2K ограничение PRIMARY KEY автоматически создает уникальный индекс по соответствующим полям с таким же именем, если таковой отсутствует, либо использует ранее созданный, если таковой существует. CLUSTERED это индекс или нет, роли никакой не играет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 16:12 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецовмежду references и реализацией на триггерах, выбирают обычно первое LOL. Естественно второе, описался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 16:22 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Вообще на RI можно смотреть как на уже написанные тригеры для наиболее стандартных ситуаций - таким образом выбор между ними лежит совершенно в другой плоскости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 16:29 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Особенно кайфово реализовывать ссылочную целостность на триггерах в MSSQL и SybaseASE, в которых отсутствуют триггеры BEFORE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 16:36 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
gardenman А INSTEAD ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 16:53 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
А В ASE даже и INSTED нету.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 17:23 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
не выдержал и проверил, как оно - вставлять с Fk и без них... есть разница, аднака... MS SQL Server 2000 SE SP3, 2 таблички с одинаковой структурой, одна с Fk (6 штук), другая без, вставлял по 20000 записей. Таблички, на которые ссылаемся - 800000, 50, 1800, 500000, 20, 98000000 записей. С Fk elapsed time 30672 ms, без Fk - 29294 ms, разница - около 5%. с использованием Fk конечно много логических чтений из табличек, на которые ссылаемся, но физических - всего порядка 130. Без Fk - логических чтений ессно не было. как на мой взгляд, так лучше бы Fk были.... конечно, я сам всё делаю через XP,всё проверяю, ничего "такого" никуда не должно вставится/удалится... вроде бы... но есть еще другие программеры (у заказчика), которые могут тово... сотворить... да и сам ведь не без греха, ошибешься где-нить, или 100 пудов забудешь чего-нить.... уж лучше будет "последний рубеж", который не даст тебе сделать каку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 23:47 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Честно говоря я не понимаю откуда возмутся тормоза, если констрейн реализован не триггером, а средствами базы. В общем случае. В частности - Конечно надо проверять на практике - смотря какой констрейн и на какой базе. Насчет того что большинство программеров голосуют за ХП против констрейнов - не правда. Это проще только тем, кто привык (читай: привык работать с файловыми базами типа старого фокса) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 08:04 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
I'm completely agree with TimKa! Сколько я всякого дерьма исправлял из-за отсутствия FK в нешей базе... А сколько еще предстоит..((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 09:56 |
|
||
|
Ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Некоторые СУБД например позволяют очень гибко настраивать момент срабатывания для foreign-key-constraint's. Например в ASA есть такая опция БД (database options) как WAIT_FOR_COMMIT. Смысл в том, что если она вкл., то проверка целостности будет проверяться только в момент фиксации изменений, т. е. выполнения COMMIT. Если же опция выкл., то проверка целостности будет проверяться в момент непосредственного выполнения Insert, update, delete. WAIT_FOR_COMMIT может устанавливаться как для одиночного коннекта, так и для групп. Кроме того для foreign-key-constraint при создании таблицы можно указать опцию CHECK ON COMMIT (переопределят опцию WAIT_FOR_COMMIT, если последняя - выключена), которая откладывает проверку RESTRICT Action для foreign key. При этом не происходит задержки CASCADE, SET NULL, SET DEFAULT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32622533&tid=1546338]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
86ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 265ms |
| total: | 497ms |

| 0 / 0 |
