powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ссылочная целостность
17 сообщений из 42, страница 2 из 2
Ссылочная целостность
    #32618931
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAВ теории РБД мне также не встречалось понятие CLUSTERED, это опять же относится к реализации
Никто и не спорит. А при чем тут голая теория-то вообще?
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32618971
Kassandra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old2kassandra:
БД - опердень банка. Таблиц - сотни, процедур - аналогично. Есть основные таблицы (например таблица платежей и остатков), есть куча справочников (например коды банков, коды операций, исполнителей и.т.п). В таблице платежей - за все время записей около 20 млн. Констрэйнты не используются. При операции ввода или проведения нового платежа все проверки по любому делаются только в соответствующей ХП. Как бы работала система по скорости, если бы на таблицу платежей еще бы был констрэйнт практически на все ее поля я не знаю - но предполагаю, что-бы тормоз был конретный, хотя я не имел опыта работы с большими БД с интенсивной нагрузкой аналогичной нашей.
И не узнаешь, пока не попробуешь :)
Имхо проблемы быстродействия работы БД нужно решать мощностью используемых ресурсов, а не отказом от механизма целостности и непротиворечивости данных, тем более в банковских системах. Ну и, разумеется, не забывать об оптимизации запросов.
Кстати, на чем все это реализовано (СУБД? Hard?), если не секрет?
Конечно, случаи отказа от констрэйнтов бывают, но чтобы в БД из нескольких сотен таблиц не было ни одного к-та.....
Но хоть индексы то у вас есть?:)
wbr, k
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619129
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реализовано на Sybase ASE 12.5 on WinNT. Хард - 4xCPU Xeon (сколько гигагерцев точно не помню)+Raid10+4Gb RAM.
Я думаю можно поставить вопросы так:
1. В каких случаях на практике отказ от констрэйнтов допустим? Можно ли сказть, что ХП ориентированная БД с жестким котролем за изменениями - это допустимый случай?
2. Как использование констрэйнтов влияет на производительность? Можно ли ее как-то оценить?
Если в форуме есть разработчики или эксплуататоры биллинговых систем в телекомах, то интересно узнать - использутся в их БД констрэйнты на нагруженную основную таблицу (наверное это таблица звонков)?
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619138
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего это продукт фирмы Диасофт.
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619159
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Как бы работала система по скорости, если бы на таблицу платежей еще бы был констрэйнт практически на все ее поля я не знаю - но предполагаю, что-бы тормоз был конретный


Многие из нас ( и я в том числе) страдают тем, что думают, но не проверяют это экспериментом. Тормозов не будет. Посмотри другие банковские системы. Просто летает все.
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619190
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле они там отказались от констрейнов на сервере не по вопросам производительности. У них были другие причины.

1) Для WF Отказаличь потому, что она многоплатформенная т.е может запускаться на Oracle,MS SQL, битрив

2) В 5 NT отказались потому что без констрейнов на базе проще писать ПАТЧИ.
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619199
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old1. В каких случаях на практике отказ от констрэйнтов допустим? Можно ли сказть, что ХП ориентированная БД с жестким котролем за изменениями - это допустимый случай?
Да. Но не только, в случае пакетных изменений/репликации если выбирать между references и реализацией на триггерах, выбирают обычно первое ввиду большей гибкости...

Ggg_old2. Как использование констрэйнтов влияет на производительность? Можно ли ее как-то оценить?
... и скорости. Оценивать сей факт всегда надо по месту, на конкретных данных/запросах.
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619236
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовА при чем тут голая теория-то вообще?
Сергей ВаскецовВерно, на самом деле я немного утрирую, только для CLUSTERED PK он обязан создаваться (по смыслу CLUSTERED), для NONCLUSTERED тоже не обязательно.
Тогда утверждение должно быть в контексте конкретной СУБД, а не вообще.
Пример: в MS SQL 2K ограничение PRIMARY KEY автоматически создает
уникальный индекс по соответствующим полям с таким же именем, если
таковой отсутствует, либо использует ранее созданный, если таковой
существует. CLUSTERED это индекс или нет, роли никакой не играет.
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619268
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецовмежду references и реализацией на триггерах, выбирают обычно первое
LOL. Естественно второе, описался.
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619283
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще на RI можно смотреть как на уже написанные тригеры для наиболее стандартных ситуаций - таким образом выбор между ними лежит совершенно в другой плоскости
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619306
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Особенно кайфово реализовывать ссылочную целостность на триггерах в MSSQL и SybaseASE, в которых отсутствуют триггеры BEFORE.
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619342
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman

А INSTEAD ?
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619395
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А В ASE даже и INSTED нету....
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32619738
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не выдержал и проверил, как оно - вставлять с 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 пудов забудешь чего-нить.... уж лучше будет "последний рубеж", который не даст тебе сделать каку.
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32622293
TimKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря я не понимаю откуда возмутся тормоза, если констрейн реализован не триггером, а средствами базы. В общем случае. В частности - Конечно надо проверять на практике - смотря какой констрейн и на какой базе.

Насчет того что большинство программеров голосуют за ХП против констрейнов - не правда. Это проще только тем, кто привык (читай: привык работать с файловыми базами типа старого фокса)
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32622442
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I'm completely agree with TimKa!
Сколько я всякого дерьма исправлял из-за отсутствия FK в нешей базе...
А сколько еще предстоит..(((
...
Рейтинг: 0 / 0
Ссылочная целостность
    #32622533
Guest_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Некоторые СУБД например позволяют очень гибко настраивать момент срабатывания для 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
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ссылочная целостность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]