Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с маленькой проблемой . / 7 сообщений из 7, страница 1 из 1
04.11.2001, 14:51
    #32016524
slim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с маленькой проблемой .
Помогите человеку мало работавшему с MSSQL ! Просьба не пинать ногами и в неграмотности не обвинять.Сам знаю что такой)
Cуть проблемы.
В офисе имеется выход в инет через ISA cервер-логи которого перенаправляются в таблицы базы данных MSSQL 2000.Три таблицы – Usern-имена юзеров, pfltable –таблица с большим количеством полей как то Remote IP ,localIp ,username итд –лог показывающий отвергнутые и блокируемые входящие и исходящие пакеты со всеми вытекающими атрибутами-короче лог файерволла.Третья таблица той же структуры примерно-W3USURF –лог серфа юзеров по интернету.
При наличии в офисе большого количества юзеров имеющих доступ к сети а также интернет маньяков база растет просто немереннно-никаких массивов не хватит.да и не надо собственно хранить все это .Поэтому раз ,примерно в неделю из третьей таблицы а также из второй удаляются значения полей до энного числа.Вручную. Так вот хотелось ы эту процедуру автоматизировать.В хелпе (по моему в хелпе по ИСЕ про это упоминалось) причем вроде как это можно сделать средствами SQL2000 –просто при определенном обьеме файла логи бы писались в начало таблицы вместо старых значений.То есть цикл.
Книжку почитал –ничего подобного не нащел(видимо в силу малообразованности в части SQL ) Если кто знает как это реализовать –не откажите в помощи.Хотя бы ткните носом где искать-буду разбираться.
Спасибо всем кто дочитал.
...
Рейтинг: 0 / 0
05.11.2001, 01:58
    #32016530
olegusan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с маленькой проблемой .
> просто при определенном обьеме файла логи бы писались в начало таблицы вместо старых значений.

Так делать не надо.

Лучше так:
Заходим в Enterprise Manager
Далее Management -> SQL server agent -> Jobs
Right click
New Job
Во вкладке Steps добавляешь New step и в графу Command пишешь
например
DELETE FROM MyTable WHERE DATEDIFF(dd,DateField,GETDATE())>8
Этот запрос будет удалять все записи старше 8 дней.

Во вкладке Schedule ставишь расписание выполнения раз в неделю.

А вообще, лучше не удалять информацию, а агрегировать ее и закачивать в другую таблицу.
Вдруг понадобится посмотреть сколько начальник проводит времени на www.penthouse.com
Иначе зачем эти логи вести?
...
Рейтинг: 0 / 0
05.11.2001, 07:15
    #32016540
slim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с маленькой проблемой .
Огромное спасибо!Насчет таблицы-может быть Вы и правы....Но объемы просто дикие-даже в сжатом виде.Насчет Job были всякие соображения я думал-но не думал что сие так просто.
А логи ведутся как раз с тем чтобы НАЧАЛЬНИК узнал был ли Пупкин с утра на Porno.ru или по работе в инете сидел.ПРограмма клиент(самопальная) позволяющая с максимальным удобством просмотреть кто где и когда стоит у меня и у него.
Еще раз благодарю.
...
Рейтинг: 0 / 0
05.11.2001, 07:36
    #32016543
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с маленькой проблемой .
Если таблица действительно большая, то IMHO лучше по расписанию переименовывать старую таблицу и создавать пустую новую, т.к. длительная блокировка таблицы при DELETE FROM MyTable ВОЗМОЖНО отразиться на работе вашего ISA). Конечно можно поиграться с блокировками, но - опять же IMHO - переименование обойдется "дешевле".
...
Рейтинг: 0 / 0
05.11.2001, 07:52
    #32016547
slim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с маленькой проблемой .
Вот это интересно.... ПОскольку DELETE -(сейчас ручной) делается минут 7(процессор--98-100%) .И нередко заканчивается откатом.Приходится удалять по дням.Посмотрим.
За совет большое спасибо
...
Рейтинг: 0 / 0
05.11.2001, 08:59
    #32016551
Dmitri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с маленькой проблемой .
Можно еще использовать Truncate Table (если нет связей с другими таблицами), она удаляет по страницам и не использует журнал, поэтому быстрее работает
...
Рейтинг: 0 / 0
05.11.2001, 09:30
    #32016555
olegusan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с маленькой проблемой .
> Можно еще использовать Truncate Table (если нет связей с другими таблицами),
> она удаляет по страницам и не использует журнал, поэтому быстрее работает

Еще неплохо работает DROP DATABASE. Да и FORMAT C: весьма эфективен.

BOL: The TRUNCATE TABLE statement is a fast, nonlogged method of deleting ALL rows in a table.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с маленькой проблемой . / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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