Вопрос к DBA
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
Вопрос к DBA
Подскажите пожалуиста, сушествует ли возможность для DBA запорграмировать уничтожение таблиц которие создани ранее чем какое-то время ( к примеру неделю) назад от настояшего времени?
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
-
- Уже с Приветом
- Posts: 664
- Joined: 05 Jun 2002 01:11
Re: Вопрос к DBA
CBETA* wrote:Подскажите пожалуиста, сушествует ли возможность для DBA запорграмировать уничтожение таблиц которие создани ранее чем какое-то время ( к примеру неделю) назад от настояшего времени?
It's unclear what database we are talking about here but anyway...
In Oracle you can schedule a job which would periodically
1. delete rows based on some timestamp that has to be maintained by an application:
delete from t1 where ts <= sysdate - 7
... or ..
2. drop partitions in a table partitioned by week (more efficient than 1).
In MS SQL, Server you can do (1).
If you do not have a timestamp, then you cannot determine what data can be expired.
However, the above is applicable to data that were *designed* to age out -- in all other cases there is no simple criterium to determine whether the rows/tables are no longer needed by some obscure application. Here, a cleanup should be done manually after negotiations (and subsequent approval) with/of all the probable users
VC
-
- Уже с Приветом
- Posts: 23804
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Почему все как партизаны скрывают главное - какая база ?
В MS SQL в sysobjects есть дата тсоздания таблицы
Но учтите - это дата создания таблицы физически
То есть если ктото создал таблицу а потом с помощью Enterprise изменил ее структуру (при этом старая таблица переименовывается, создается новая, данные копируются, и старая удаляется) дата будет содержать не то что Вы одилаете
Наконец Вы уверены что жто нужно ?
Не всяакий production DBA может спать спокойно зная что процесс автоматически дропает таблицы
А почему недостаточно штатных средств ?
В MS SQL в sysobjects есть дата тсоздания таблицы
Но учтите - это дата создания таблицы физически
То есть если ктото создал таблицу а потом с помощью Enterprise изменил ее структуру (при этом старая таблица переименовывается, создается новая, данные копируются, и старая удаляется) дата будет содержать не то что Вы одилаете
Наконец Вы уверены что жто нужно ?
Не всяакий production DBA может спать спокойно зная что процесс автоматически дропает таблицы
А почему недостаточно штатных средств ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
Dmitry67 wrote:Почему все как партизаны скрывают главное - какая база ?
наверное потому что не ДБА думают что никаких других баз не сушествует, кроме тек с которими они рабоитают
Dmitry67 wrote:Наконец Вы уверены что жто нужно ?
Не всяакий production DBA может спать спокойно зная что процесс автоматически дропает таблицы
А почему недостаточно штатных средств ?
Наш ДБА решил удалять все user таблици из вспомогательнои бази на виходних.
Я его просила поменять процесс и удалять таблици недельнои давности, он говорит что етого он сделать не может, а мне кажется что ему просто лень.
...вот я и ршиле с божеи ( то есть вашеи) помошью написать script котории он может зашить в job и ранить себе хоть каждии день
- и волки будут сити, и заици ( таблици ) живи...
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
Declare @tableName varchar(1000) , @Sql varchar(5000)
declare Cur cursor for
select [name] from sysobjects where xtype ='U' and crdate < dateadd(dd, -7, getdate())
open Cur
fetch next from Cur into @tableName
while @@fetch_status = 0
begin
select @Sql ='drop table [' + @tableName + ']'
print @Sql
exec (@Sql)
fetch next from Cur into @tableName
end
CLOSE Cur
DEALLOCATE Cur
--------пральна?
-- не не пральна, откуда ownership выковырить?
declare Cur cursor for
select [name] from sysobjects where xtype ='U' and crdate < dateadd(dd, -7, getdate())
open Cur
fetch next from Cur into @tableName
while @@fetch_status = 0
begin
select @Sql ='drop table [' + @tableName + ']'
print @Sql
exec (@Sql)
fetch next from Cur into @tableName
end
CLOSE Cur
DEALLOCATE Cur
--------пральна?
-- не не пральна, откуда ownership выковырить?
Last edited by CBETA* on 08 Jun 2004 19:16, edited 1 time in total.
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
-
- Уже с Приветом
- Posts: 23804
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
-
- Уже с Приветом
- Posts: 23804
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
CBETA* wrote:они сблаговолили создать временную базу данних чтоб ми могли тестировать на stage environment....
Так что каждый пользователь на жтой базе с нуля создает всю схему под своим user ? И делает все нужные inserts для таблиц справочников ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
katit wrote:Ах, да - sysusers и т.п. это следующий шаг
Получилось! огромное спасибо!!! :
Declare @tableName varchar(1000) , @Sql varchar(5000), @user varchar(40)
declare Cur cursor for
select s.[name], u.[name] from sysobjects s
inner join sysusers u on s.uid = u.uid
where xtype ='U' and crdate < dateadd(dd, -7, getdate())
open Cur
fetch next from Cur into @tableName, @user
while @@fetch_status = 0
begin
select @Sql ='drop table [' + @user + '].[' + @tableName + ']'
print @Sql
exec (@Sql)
fetch next from Cur into @tableName, @user
end
CLOSE Cur
DEALLOCATE Cur
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Тогда я бы принял самое ленивое решение
Раз пользователи такие умные что могут базы с нуля скриптом поставить то я бы вообще ничего не чистил а оставил бы жто responsibility юзера
В крайнем случае если пользователь напорточал то скриптом побоным Вашему я бы сносил все объекты пользователя
Раз пользователи такие умные что могут базы с нуля скриптом поставить то я бы вообще ничего не чистил а оставил бы жто responsibility юзера
В крайнем случае если пользователь напорточал то скриптом побоным Вашему я бы сносил все объекты пользователя
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Да нет
Скрипт правильный
Я про консерваторию, в смысле про использование скрипта
Всякое бывает, но обычно такое очень в специальныз случаях надо делать
Но скрипты с подобной структурой используют очень часто, например чтобы делать dbcc dbreindex итд
Скрипт правильный
Я про консерваторию, в смысле про использование скрипта
Всякое бывает, но обычно такое очень в специальныз случаях надо делать
Но скрипты с подобной структурой используют очень часто, например чтобы делать dbcc dbreindex итд
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 3417
- Joined: 23 May 2001 09:01
- Location: Laguna Beach , CA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Конечно с пустой то базой оно легче
Вообще то для DEV выделяют не базу а сервер
Потому что какая нибудь runaway query может ну не положить, но сильно ухудшить производительность сервера или пожрать все место на диске
Соответственно левелоперы споконо жиаут в своем маленьком DEV сервре и большой и страшный production DBA туда не лезет
Его интересуют скрипты которые создают девелоперы
Как правило между ними стоит QA department со своим отдельным сервером...
Вообще то для DEV выделяют не базу а сервер
Потому что какая нибудь runaway query может ну не положить, но сильно ухудшить производительность сервера или пожрать все место на диске
Соответственно левелоперы споконо жиаут в своем маленьком DEV сервре и большой и страшный production DBA туда не лезет
Его интересуют скрипты которые создают девелоперы
Как правило между ними стоит QA department со своим отдельным сервером...
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014