Вопрос к 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:Почему все как партизаны скрывают главное - какая база ?
наверное потому что не ДБА думают что никаких других баз не сушествует, кроме тек с которими они рабоитают
![Wink ;)](./images/smilies/icon_wink.gif)
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