powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Microsoft задавит Oracle
25 сообщений из 408, страница 10 из 17
Microsoft задавит Oracle
    #34918273
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)
объявлять пожалуй не будем, но лично я по этому поводу никогда не комплексовал.
Плохо не то, что в одной СУБД что то так а в другой что то эдак . Плохо то что во всех по разному
нах, нах. я категорически против того порно какое существует в mssql: на IL read commited работает, при IL snapshot не работает, а тут мы рыбу заворачивали и при всем при этом НИКАК от накатывания заведомо кривых патчей.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34918731
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! wrote:
> нах, нах. я категорически против того порно какое существует в mssql: на
> IL read commited работает, при IL snapshot не работает, а тут мы рыбу
> заворачивали и при всем при этом НИКАК от накатывания заведомо кривых
> патчей.

То ли дело - орацл: ваще никак не работает! Верно? ;)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34918810
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
То ли дело - орацл: ваще никак не работает! Верно? ;)


Странно ... у меня работает
что я делаю не так ???
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34918840
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
То ли дело - орацл: ваще никак не работает! Верно? ;)
Posted via ActualForum NNTP Server 1.4
не верно, попробую в третий раз по слогам:
оракл не позволит запустить юзеру покареженые патчем процедуры и оповестит ДБА о проблеме. ДБА же в свою очередь имеет тучу инструментов исправить ВОВРЕМЯ ситуацию от rman до flashback с recycle bin.

ДБА mssql же о таких инструментах может только мечтать, т.к. в связи с кривизной архитектуры (в том числе в виде транзакций навешеных на DDL) в ближайшее десятилетие ничего подобного в mssql не предвидится. Прогнав патчик ДБА mssql может только помолится, что они не зацепили сторед процедуры и если зацепили то когда юзер на такую наткнется то в ней не встречалось транзакционно независимых вещей, которые уже невозможно откатить.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34918899
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! wrote:
> оповестит ДБА о проблеме. ДБА же в свою очередь имеет тучу инструментов
> исправить ВОВРЕМЯ ситуацию от rman до flashback с recycle bin.
Мне - не надо тучу :)
Мне надо
if @@error <> 0 rollback
куда уж проще?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34918977
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhmurБыл ещё один где сравнивались трудозатраты DBA на исправление различных ситуаций. Но я его сейчас найти не могу. И можно вспомнить такую замечательную ьехнологию как FLASHBACK. А конкретно FLASHBACK DATABASE. Которая позволяет вернуть ВСЮ базу к определённому моменту в прошлом за очень короткое время и является одним из основных средств защиты от фатальных ЛОГИЧЕСКИХ сбоев. У MS есть аналог (не воспрнимайте это как издёвку, я очень плохо знаю MS SQL)?


Database Snapshots -> How Database Snapshots Work
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919027
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
Мне - не надо тучу :)
Мне надо
if @@error <> 0 rollback
куда уж проще?
Posted via ActualForum NNTP Server 1.4
простота она как известно хуже вороства. попробуйте все таки сосредоточится: @@error > 0 может оказатся только если этот патч на столько кривой, что там прямо кривой синтаксис (хотя я не представляю какой можно умудрится написать, элементарно IDE синтаксис проверит, и еще меньше представляю как такое может добратся до продакшена).
разжевываю в четвертый раз, для совсем одаренных:

у нас есть такой патчик полученый от девелоперов
Код: plaintext
1.
2.
3.
4.
5.
create table ...
insert into ...
[еще пара сотен DDL команд]
alter table shitlog rename column total to total_usd
[и еще пара сотен DDL команд]
мы этот патчик прогоням, получаем @@error = 0, т.е. синтасических ошибок нет и смело жмем commit. а на следующий день выясняем, что девелоперы поправили тысячи процедур, но забыли про ночную процедуру которая делает некий перасчет, рассылает спам в виде майлов клиентам и записывает логи в табличку shitlog. так вот расчет прошел, спам разослан, а вот в shitlog записать не удалось (патчик переименовал поле), соответсвенно спам ушел, а весь расчет отвернут назад. в результате счастливые клиенты получили спам не соответствующий действительности.

так вот оракл бы подобной хрени никогда не позволил, будь ДБА хоть трижды идиот. поэтому я например считаю, что административные навороты оракда опережают mssql просто на десятилетия, а простота mssql просто ИЛЮЗИЯ расчитана на кухарку рулящая sql сервером просто по совместительству ....
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919038
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! wrote:
> мы этот патчик прогоням, получаем @@error = 0, т.е. синтасических ошибок


> так вот оракл бы подобной хрени никогда не позволил, будь ДБА хоть
> трижды идиот. поэтому я например считаю, что административные навороты

Согласен - оракл никогда бы не позволил :)
Потому что @@error = 0 и ошибок - не было.

А давайте вы мне всё-таки расскажете про тот случай, который конкретно
меня интересует, а? Когда @@error <> 0?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919047
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя про последовательность действий - не понял...
Сначала ушел спам - а потом был произведен расчет?
И тогда, простите - какая хрен разница?
Если расчет свалился ПОСЛЕ того, как ушел спам?
А если у вас спам уходит даже в том случае, если расчет свалился - это,
извините, ручки надо править.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919061
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
А давайте вы мне всё-таки расскажете про тот случай, который конкретно
меня интересует, а? Когда @@error <> 0?
Posted via ActualForum NNTP Server 1.4
в оракле ?
жмете "FLASHBACK DATABASE TO TIMESTAMP (SYSDATE-1/24);", берете биту и со спокойно идете бить девелоперов ...
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919078
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! wrote:
> в оракле ?
> жмете "FLASHBACK DATABASE TO TIMESTAMP (SYSDATE-1/24);", берете биту и
> со спокойно идете бить девелоперов ...
Простите, а все прочие патчи (правильные), а равно - изменения данных,
внесённые юзерами - тоже откатятся на час назад?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919092
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!в оракле ?
жмете "FLASHBACK DATABASE TO TIMESTAMP (SYSDATE-1/24);", берете биту и со спокойно идете бить девелоперов ...

В MS SQL:

Код: plaintext
RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT = <database_snapshot_name>
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919476
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
Простите, а все прочие патчи (правильные), а равно - изменения данных,

а что в майкрософте можно тоже кусочек сервис пака накатить ? наверно потому оркалойды и стоят дороже, что им не приходит в голову накатывать кусочек сервис пака ;)

locky
внесённые юзерами - тоже откатятся на час назад?

какие юзеры во время накатывания патча, особливо в mssql где обычный индекс перестороить нужно всех из базы выгнать ? время указывает ДБА

2pkarklin
это снапшот, ее стоит сравнивать с технологией снапшотов в оракле середины девяностых и на flashback это совсем не похоже...
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919490
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!это снапшот, ее стоит сравнивать с технологией снапшотов в оракле середины девяностых и на flashback это совсем не похоже...

А я и не пытался сравнивать ее с flashback. Но предложенные Вами и zhmur задачи Database Snapshots решают.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919506
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!особливо в mssql где обычный индекс перестороить нужно всех из базы выгнать ?

Это тоже баян... ;) В 2005 (EE) построение, перестройка и удаление индекса может выполняться OnLine.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919541
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
А я и не пытался сравнивать ее с flashback. Но предложенные Вами и zhmur задачи Database Snapshots решают.
нифига не решает, пока пользователь не наткнется на кривую хп вы не узнаете, что патч был кривоват. нету у мс никаких инструментов отследить зависимость хп от поля в таблички, потому тогда когда вы обнаружите кривые хп востанавливать всю бд будет уже позно, т.к. там уже туча зафиксированых транзакций после наката кривенького патча. ну и не совсем понял в чем отличие востанавливатся из бэкапа или снапшота ...

locky
Хотя про последовательность действий - не понял...
Сначала ушел спам - а потом был произведен расчет?
И тогда, простите - какая хрен разница?
Если расчет свалился ПОСЛЕ того, как ушел спам?
А если у вас спам уходит даже в том случае, если расчет свалился - это,
извините, ручки надо править.
Posted via ActualForum NNTP Server 1.4
да какая разница какая последовательность ? речь о том что в транзакциях могут встречатся транзакционно независимые вещи, которые уже не откатятся. а от того, что ручки нада править вендору, ДБА легче не становится. если бы код был идеальный то и патчи накатывать не требовалось бы.

из-за того что субд не способна отследить зависимость хп от таблиц, субд устроит тучу гемороя ДБА, которого развели пустой болтовней о простоте администрирования mssql, который в плане администрирования только рюшками EM и отличается от оракла середины девяностых.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919563
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да к стате на счет последовательности: майкрософт на полном серьезе рекомендует разбивать длинные транзакции на несколько покороче, чтоб длинная транзакция не мешала остальным. не вижу ничего сверьестественого в том, что недалекий вендор начитавшись таких рекомендаций разобьет длинную транзакцию ночного расчета со всеми вытекающими из патчика последствиями ...
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919708
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!нету у мс никаких инструментов отследить зависимость хп от поля в таблички

Не будьте столь категоричны. Есть поддержка зависимостей sys.sql_dependencies. И ничего не мешает разработчикам\админам ее анализировать. Более того - переименование колонки - это выполнение sp_rename (нет приведенного Вами ALTER TABLE ... RENAME ...), которая так же генерит соответствующий варнинг (который можно\нужно обработать). Если Вы упомяните Deffered Name Resolution, то замечу, что создание хп, которая ссылается на отсутствующую табличку (создать хп ссылающуюся на отсутствующую колонку в сущестующей таблице невозможно) не проходит бесследдно -и тут генерится соответсвующий варнинг (который можно\нужно обработать), и задача админа - адектватно на него атреагировать. Точно так же как оракловский админ должен отреагировать на инвалидные объекты. Если они оба проигнорировали это, то какая разница - какую ошибку получит пользователь - инвалидность объекта или отсутствие необходимой колонки?

Yo.!потому тогда когда вы обнаружите кривые хп востанавливать всю бд будет уже позно,

Восстанавливать бд из флашбэка предложили Вы (в качестве "альтернативы" транзакционности DDL в MS SQL), а не я. Я лишь привел некое соответствие функционала из MS SQL. Так что давайте не будем "с больной головы на здоровую".

Yo.!ну и не совсем понял в чем отличие востанавливатся из бэкапа или снапшота

В том, что:

1. Вы без дополнительных телодвижений получаете бд на момент создания снапшота.
2. Эта операция гараздо быстрее (восстановятся только страницы, которые менялись с момента создания снапшота), чем подъем бэкапа.

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

Ну, сами значете, что с дуру можно сломать. Да и "не мешает" счас уже никто. ;)
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919793
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Более того - переименование колонки - это выполнение sp_rename (нет приведенного Вами ALTER TABLE ... RENAME ...), которая так же генерит соответствующий варнинг (который можно\нужно обработать).

а можно с этого места поподробней ? запустил sp_rename, получил офигенно информативный варнинг:

Caution: Changing any part of an object name could break scripts and stored procedures.

причем даже на таблички которые в хп не участвуют.
про sys.sql_dependencies почитаю, наверника появятся вопросы.

pkarklin Если они оба проигнорировали это, то какая разница - какую ошибку получит пользователь - инвалидность объекта или отсутствие необходимой колонки?
громадная разница: инвалидную хп оракл не позволит запустить, а mssql с легкостью запустит и она будет работать пока не нарвется на неверных стейтмент и не факт, что все что наделал процедура можно будет отвернуть.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919858
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!а можно с этого места поподробней ? запустил sp_rename, получил офигенно информативный варнинг:

Caution: Changing any part of an object name could break scripts and stored procedures.

Этот варнинг Вы получите в любом случие, даже если в зависимостях нет записей. Если же они там будут, то Вы получите:

Ошибку 15337:

Caution: sysdepends shows that other objects (views, procedures and so on) are referencing this object by its old name. These objects will become invalid, and should be dropped and re-created promptly.

Ваша правда - имя объекта не будет указано. Но по двойному клику на ошибке получить в QA строку бача, которая ее вызвала - не проблема.

Yo.!громадная разница: инвалидную хп оракл не позволит запустить, а mssql с легкостью запустит и она будет работать пока не нарвется на неверных стейтмент и не факт, что все что наделал процедура можно будет отвернуть.

Вы не правы. Не запустит.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
CREATE TABLE Table1(col1 int, col2 int)
GO
INSERT Table1 VALUES( 1 ,  1 )
GO
CREATE PROC TestProc
AS
    INSERT Table1 VALUES( 2 ,  2 )   
    UPDATE Table1
    SET col2 =  2 
    WHERE col1 =  1 
GO

EXEC sp_rename 'dbo.Table1.col2', 'col3', 'COLUMN'
GO

EXEC TestProc
GO

SELECT * FROM Table1
GO

DROP PROC TestProc
GO
DROP TABLE Table1


Caution: Changing any part of an object name could break scripts and stored procedures.
Server: Msg  207 , Level  16 , State  1 , Procedure TestProc, Line  0 
Invalid column name 'col2'.
col1        col3        
----------- ----------- 
 1             1 
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919879
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
c sys.sql_dependencies тоже ничерта не понял:

есть табличка и хп котрая селектит поле из нее. запускаю sp_rename переименовываю поле (хп становится кривой), запускаю select * from sys.sql_dependencies.
Код: plaintext
1.
0	OBJECT_OR_COLUMN_REFERENCE_NON_SCHEMA_BOUND	37575172	0	21575115	2	1	0	0

снова запускаю sp_rename и возвращаю верное название поля (хп снова становится верной), смотрю sys.sql_dependencies
Код: plaintext
1.
0	OBJECT_OR_COLUMN_REFERENCE_NON_SCHEMA_BOUND	37575172	0	21575115	2	1	0	0
и что тут можно анализировать, я например не вижу разницы ...
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34919944
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!c sys.sql_dependencies тоже ничерта не понял:

Так понятней:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TABLE Table1(col1 int, col2 int)
GO
CREATE PROC TestProc
AS
    INSERT Table1 VALUES( 2 ,  2 )   
    UPDATE Table1
    SET col2 =  2 
    WHERE col1 =  1 
GO

SELECT
  OBJECT_NAME(referenced_major_id) AS ObjectName,
  (SELECT name FROM sys.columns WHERE object_id = referenced_major_id AND column_id = d.referenced_minor_id) AS ColumnName
FROM
  sys.sql_dependencies d
WHERE
  d.object_id = OBJECT_ID('TestProc', 'P') AND
  referenced_minor_id <>  0 
GO

ObjectName                                                                                                                       ColumnName                                                                                                                       
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- 
Table1                                                                                                                           col2
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34920006
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Этот варнинг Вы получите в любом случие, даже если в зависимостях нет записей. Если же они там будут, то Вы получите:

Ошибку 15337:

Caution: sysdepends shows that other objects (views, procedures and so on) are referencing this object by its old name. These objects will become invalid, and should be dropped and re-created promptly.

я не получаю. что я делаю не так ? как я подозреваю я получил бы это сообщение если бы дропнул всю табличку, а не переименовал лишь одно поле.

pkarklin
Вы не правы. Не запустит.

действительно не запускает, ок этот пункт вычеркиваем.


pkarklin
SELECT
OBJECT_NAME(referenced_major_id) AS ObjectName,
(SELECT name FROM sys.columns WHERE object_id = referenced_major_id AND column_id = d.referenced_minor_id) AS ColumnName
FROM
sys.sql_dependencies d
WHERE
d.object_id = OBJECT_ID('TestProc', 'P') AND
referenced_minor_id <> 0
GO

а что толку, отгадать кривая ли хп или нет запросик не поможет. этот запрос показывает название поля которое сейчас в бд, в про то что в хп используется другое (теперь кривое) название - молчит. а название поля, так я его и так могу посмотреть, в чем фишка ?
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34920112
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Этот варнинг Вы получите в любом случие, даже если в зависимостях нет записей. Если же они там будут, то Вы получите:

Ошибку 15337:

Caution: sysdepends shows that other objects (views, procedures and so on) are referencing this object by its old name. These objects will become invalid, and should be dropped and re-created promptly.

переименовал табличку - та же фигня, стандартный варнинг, никаких ошибок.

посмотрел sp_depends, вообще бредятина. походу mssql хранит какой-то ИД таблицы, поэтому sp_depends считает, что моя хп использует переименованую таблицу, а на деле в ней старое кривое название таблицы.
я пока не вижу способа как отгадать кривая ли у меня хп.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34920226
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! wrote:
> а что в майкрософте можно тоже кусочек сервис пака накатить ? наверно
> потому оркалойды и стоят дороже, что им не приходит в голову накатывать
> кусочек сервис пака ;)
А давайте отвянем от всех прочих задач (включая накатывания сервис пака
на сервер)- и сосредоточимся на той, что я озвучил, ага? Т.е.
накатывание патча на прикладную задачу - и восстановление в случае сбоя.

> какие юзеры во время накатывания патча, особливо в mssql где обычный
> индекс перестороить нужно всех из базы выгнать ? время указывает ДБА
Обычные юзера.
Сегодня накатывал патч на рабочую базу.
Никого выгонять не пришлось, знаете-ли.
Поелику патч был для прикладной системы, а не для СКЛ Сервера.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
25 сообщений из 408, страница 10 из 17
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Microsoft задавит Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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