Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 [7] 8 9 10 11 12   вперед  Ctrl      все
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Di_LIne

- Почему столь успешно юзаемая в он-лайне СУБД, не приживается в офф-лайне?

Потому что руки её авторов... сомнительного качества.

На примере тех же триггеров: авторы MySQL вообще ничего толкового в них сделать не смогли
и потому запретили вообще обращения к таблицам. Авторы Oracle были чуть получше и
запретили обращение не ко всем таблицам, а только к некоторым. Поэтому Oracle прижился в
офф-лайне, а MySQL - не судьба.

Posted via ActualForum NNTP Server 1.4

5 авг 10, 21:26    [9219329]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3910
Dimitry Sibiryakov

Di_LIne

- Почему столь успешно юзаемая в он-лайне СУБД, не приживается в офф-лайне?

Потому что руки её авторов... сомнительного качества.

На примере тех же триггеров: авторы MySQL вообще ничего толкового в них сделать не смогли
и потому запретили вообще обращения к таблицам. Авторы Oracle были чуть получше и
запретили обращение не ко всем таблицам, а только к некоторым. Поэтому Oracle прижился в
офф-лайне, а MySQL - не судьба.

Дааа, самомнения у разработчиков ФБ не занимать :)
5 авг 10, 22:27    [9219543]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Apex
Дааа, самомнения у разработчиков ФБ не занимать :)

Хорошо натренированные чтением документации Оракла люди способны разглядеть ФБ таже там,
где я специально о ней ни разу не упомянул...

Posted via ActualForum NNTP Server 1.4

5 авг 10, 22:29    [9219553]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3910
Dimitry Sibiryakov

Apex
Дааа, самомнения у разработчиков ФБ не занимать :)

Хорошо натренированные чтением документации Оракла люди способны разглядеть ФБ таже там,
где я специально о ней ни разу не упомянул...

Не только чтением и не только Оракла. А ФБ у тебя на лбу написан.
5 авг 10, 23:07    [9219696]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30261
Apex
Не только чтением и не только Оракла. А ФБ у тебя на лбу написан.

ок, а у Вас на лбу что написано?

Кстати. Топик этот как называется? коршуны чего налетели-то, не пойму.
5 авг 10, 23:29    [9219771]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3910
kdv

ок, а у Вас на лбу что написано?

Ну уж точно не только Оракл,если вы об этом.
5 авг 10, 23:35    [9219794]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Saller
Member

Откуда: exUSSR
Сообщений: 1141
Apex
Дааа, самомнения у разработчиков ФБ не занимать :)
А при чем тут самомнение? Или факты это такая страшная вещь чтобы их принимать как они есть? Откройте документацию того же MySQL и FireBird и сравните возможности триггеров и там и там. А так только пустозвон в Ваших постах.
6 авг 10, 09:57    [9220850]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
А я лублу Постгре. А если вы тут будите оффтопить - будем вместе изучать ФыВыМас - в наказание. А то там керды-перды-кун что-то молчит.
6 авг 10, 10:55    [9221413]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32554
Warstone, ну и луби... Те кто-то(что-то) мешает?
6 авг 10, 11:33    [9221821]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Warstone
А я лублу Постгре.

Вот и расскажи нам: что он позволяет читать/писать в триггерах и к каким результатам это
приводит. Чтобы можно было решить куда в этой линейке его поместить.

Posted via ActualForum NNTP Server 1.4

6 авг 10, 12:06    [9222180]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Dimitry Sibiryakov

Warstone
А я лублу Постгре.

Вот и расскажи нам: что он позволяет читать/писать в триггерах и к каким результатам это
приводит. Чтобы можно было решить куда в этой линейке его поместить.
DROP TABLE IF EXISTS test;
CREATE TEMP TABLE test(
	id bigserial NOT NULL PRIMARY KEY,
	a integer,
	b integer
);

CREATE OR REPLACE FUNCTION test_bi_trg() RETURNS TRIGGER AS $BODY$
DECLARE
	r	RECORD;
BEGIN
	RAISE NOTICE 'begin of test_bi_trg(). New rec: %, %, %', NEW.id, NEW.a, NEW.b;
	FOR r IN SELECT * FROM test LOOP
		RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
	END LOOP;
	RAISE NOTICE 'end of procedure. RETURNING NEW.';
	RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

CREATE OR REPLACE FUNCTION test_ai_trg() RETURNS TRIGGER AS $BODY$
DECLARE
	r	RECORD;
BEGIN
	RAISE NOTICE 'begin of test_ai_trg(). New rec: %, %, %', NEW.id, NEW.a, NEW.b;
	FOR r IN SELECT * FROM test LOOP
		RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
	END LOOP;
	RAISE NOTICE 'end of procedure.';
	RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

INSERT INTO test VALUES(DEFAULT, 1, 2);

CREATE TRIGGER trg_test_bi_1 BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test_bi_trg();
CREATE TRIGGER trg_test_ai_1 AFTER INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test_ai_trg();

INSERT INTO test VALUES(DEFAULT, 3, 4);
NOTICE:  CREATE TABLE will create implicit sequence "test_id_seq" for serial column "test.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "test_pkey" for table "test"
NOTICE:  begin of test_bi_trg(). New rec: 2, 3, 4
NOTICE:  reading test: 1, 1, 2
NOTICE:  end of procedure. RETURNING NEW.
NOTICE:  begin of test_ai_trg(). New rec: 2, 3, 4
NOTICE:  reading test: 1, 1, 2
NOTICE:  reading test: 2, 3, 4
NOTICE:  end of procedure.
6 авг 10, 13:19    [9222962]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Warstone

Т.е. PG позволяет читать из модифицируемой таблицы. В этом он обставил "старшего брата". А
писать в неё?

Posted via ActualForum NNTP Server 1.4

6 авг 10, 13:30    [9223088]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Dimitry Sibiryakov

Warstone

Т.е. PG позволяет читать из модифицируемой таблицы. В этом он обставил "старшего брата". А
писать в неё?
DROP TABLE test;
CREATE TEMP TABLE test(
	id bigserial NOT NULL PRIMARY KEY,
	a integer,
	b integer
);

CREATE OR REPLACE FUNCTION test_bi_trg() RETURNS TRIGGER AS $BODY$
DECLARE
	r	RECORD;
BEGIN
	RAISE NOTICE 'begin of test_bi_trg(). New rec: %, %, %', NEW.id, NEW.a, NEW.b;
	FOR r IN SELECT * FROM test LOOP
		RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
	END LOOP;
	IF NEW.a <> 10 THEN
		RAISE NOTICE 'Begin Insert new vaules.';
		INSERT INTO test VALUES (DEFAULT, 10, 11);
		RAISE NOTICE 'Insert new vaules. Rereading';
		FOR r IN SELECT * FROM test LOOP
			RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
		END LOOP;
	END IF;
	RAISE NOTICE 'end of procedure. RETURNING NEW.';
	RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

CREATE OR REPLACE FUNCTION test_ai_trg() RETURNS TRIGGER AS $BODY$
DECLARE
	r	RECORD;
BEGIN
	RAISE NOTICE 'begin of test_ai_trg(). New rec: %, %, %', NEW.id, NEW.a, NEW.b;
	FOR r IN SELECT * FROM test LOOP
		RAISE NOTICE 'reading test: %, %, %', r.id, r.a, r.b;
	END LOOP;
	RAISE NOTICE 'end of procedure.';
	RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

INSERT INTO test VALUES(DEFAULT, 1, 2);

CREATE TRIGGER trg_test_bi_1 BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test_bi_trg();
CREATE TRIGGER trg_test_ai_1 AFTER INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test_ai_trg();

INSERT INTO test VALUES(DEFAULT, 3, 4);
NOTICE:  CREATE TABLE will create implicit sequence "test_id_seq" for serial column "test.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "test_pkey" for table "test"
NOTICE:  begin of test_bi_trg(). New rec: 2, 3, 4
NOTICE:  reading test: 1, 1, 2
NOTICE:  Begin Insert new vaules.
NOTICE:  begin of test_bi_trg(). New rec: 3, 10, 11
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line 10 at SQL statement
NOTICE:  reading test: 1, 1, 2
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line 10 at SQL statement
NOTICE:  end of procedure. RETURNING NEW.
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line 10 at SQL statement
NOTICE:  begin of test_ai_trg(). New rec: 3, 10, 11
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line 10 at SQL statement
NOTICE:  reading test: 1, 1, 2
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line 10 at SQL statement
NOTICE:  reading test: 3, 10, 11
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line 10 at SQL statement
NOTICE:  end of procedure.
КОНТЕКСТ:  SQL statement "INSERT INTO test VALUES (DEFAULT, 10, 11)"
PL/pgSQL function "test_bi_trg" line 10 at SQL statement
NOTICE:  Insert new vaules. Rereading
NOTICE:  reading test: 1, 1, 2
NOTICE:  reading test: 3, 10, 11
NOTICE:  end of procedure. RETURNING NEW.
NOTICE:  begin of test_ai_trg(). New rec: 2, 3, 4
NOTICE:  reading test: 1, 1, 2
NOTICE:  reading test: 3, 10, 11
NOTICE:  reading test: 2, 3, 4
NOTICE:  end of procedure.
6 авг 10, 13:35    [9223143]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

О, круто. Индусы могут плакать от зависти.

А что будет если убрать "IF NEW.a<>10"?

Posted via ActualForum NNTP Server 1.4

6 авг 10, 13:57    [9223324]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Dimitry Sibiryakov

О, круто. Индусы могут плакать от зависти.

А что будет если убрать "IF NEW.a<>10"?
Бесконечный цикл. Хз, может пото отвалится по оверфлоу стека - не дождался.
6 авг 10, 14:01    [9223366]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Yo.!
Guest
Warstone
Бесконечный цикл. Хз, может пото отвалится по оверфлоу стека - не дождался.

какая неожиданность
что-то индусы мне все больше нравятся. к стате интересно блокировок предикатов ни в ФБ ни постгрес не имеют, что они выдадут там где оракл мниоткат делает ?
6 авг 10, 14:43    [9223887]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Yo.!

интересно блокировок предикатов ни в ФБ ни постгрес не имеют, что они выдадут там где
оракл мниоткат делает ?

Запросы знаю... таблицы знаю... индексы знаю... Предикатов не знаю. Что индусы называют
"предикатами"?

Posted via ActualForum NNTP Server 1.4

6 авг 10, 14:59    [9224054]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
Yo.!
Warstone
Бесконечный цикл. Хз, может пото отвалится по оверфлоу стека - не дождался.

какая неожиданность
что-то индусы мне все больше нравятся. к стате интересно блокировок предикатов ни в ФБ ни постгрес не имеют, что они выдадут там где оракл мниоткат делает ?

Может пойдем еще дальше, и для того чтобы ликвидировать опасность попадание в бесконечный цикл запретим на уровне PSQL все операторы циклов и переходов, а? Бог с тем Тьюрингом, пусть будет только последовательное выполнение и ветвление. Ерунда, что программы смогут реализовать значительно меньше алгоритмов, зато бесконечного цикла не будет ни у кого, и никогда. На смену беспорядку прийдет порядок! Как на кладбище.
6 авг 10, 15:00    [9224071]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Yo.!
что-то индусы мне все больше нравятся. к стате интересно блокировок предикатов ни в ФБ ни постгрес не имеют, что они выдадут там где оракл мниоткат делает ?
Ну та сначала по русски расскажи что ты хочешь услышать. Я-же с Ораклом не работал. Я тебе отвечу - что будет. Хотя что-то мне кажется что ответ будет такой:

Механизм сейвпоинтов и BEGIN EXCEPT - который реализован через вложенную транзакцию.
6 авг 10, 15:06    [9224135]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30261
мне кажется, Yo! уже объясняли про сэйвпойнты в Firebird. Если нет, то тут:
www.ibase.ru/devinfo/savepoints.htm
6 авг 10, 15:20    [9224310]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11555
kdv
мне кажется, Yo! уже объясняли про ... Firebird
Это бесполезно...
6 авг 10, 15:36    [9224557]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Yo.!
Guest
artemana

Может пойдем еще дальше, и для того чтобы ликвидировать опасность попадание в бесконечный цикл запретим на уровне PSQL все операторы циклов и переходов, а?

не надо ходить дальше, нуна сесть и один раз для себя разобраться в чем собственно проблема мутации данных. просто для себя, попробуй разобраться почему оракл решил ввести дополнительные механизмы защиты, хотя можно было плюнуть на эту лишнюю мороку как FB и Postgres. уход в бесконечный цикл это самый безобидный из косяков при отсутствии защиты ...

Warstone
Ну та сначала по русски расскажи что ты хочешь услышать. Я-же с Ораклом не работал. Я тебе отвечу - что будет. Хотя что-то мне кажется что ответ будет такой:

есть один интересный нюанс на уровне Read Commited когда пишущий запрос в процессе исполнения обнаруживает, что конкурирующая транзакция изменила строки входящие в предикат.

http://www.oracle.com/global/ru/oramag/dec2006/russia_minirollback.html

ЗЫ. для Firebird вопрос снимается, там же Read Commited и не пытается консистентный набор выдать.
6 авг 10, 17:17    [9225736]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Yo.!
уход в бесконечный цикл это самый безобидный из косяков при отсутствии
защиты

Рекурсии бояться - в программисты не ходить.

Yo.!

ЗЫ. для Firebird вопрос снимается, там же Read Commited и не пытается консистентный набор
выдать.

Вообще-то DML никакого набора и не выдаёт... Firebird при подобном конфликте не станет
заниматься фрикциями, а просто откатит всю предыдущую работу запроса и вернёт ошибку
пользователю.

Posted via ActualForum NNTP Server 1.4

6 авг 10, 17:57    [9226113]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30261
Yo!
есть один интересный нюанс на уровне Read Commited когда пишущий запрос в процессе исполнения обнаруживает, что конкурирующая транзакция изменила строки входящие в предикат.

http://www.oracle.com/global/ru/oramag/dec2006/russia_minirollback.html


я посмотрел статью только в части update и delete, и вижу тут только одно отличие ФБ от Оракла:
- ФБ не стартует "мини-снапшот" при старте выполнения оператора

дальше все "примерно одинаково". Т.е. если во время update/delete ФБ обнаруживает конфликт, то откатывает именно этот оператор (через savepoints).

Еще, как я понимаю, в отличие от Оракла ФБ в ReadCommitted проигнорирует наличие committed-данных, которые были сохранены ПОСЛЕ момента старта RC с update, но ДО обновления этих данных update-ом. Что в отношении ФБ справедливо для уровня изолированности SNAPSHOT. А про микро-снапшот, стартуемый Ораклом в начале оператора, я сказал выше.
6 авг 10, 18:23    [9226317]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30261
kdv
Что в отношении ФБ справедливо для уровня изолированности SNAPSHOT.

блин, записался. Имел в виду что поведение Оракла относительно оператора в RC эквивалентно снапшоту в ФБ потому что в начале оператора Оракл как раз как бы стартует микро-снапшот-транзакцию на время работы оператора.
6 авг 10, 18:24    [9226329]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 [7] 8 9 10 11 12   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить