• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Удалить неиспользуемы представления

dimat

Well-known member
31.07.2008
508
0
BIT
0
Всем привет!
Есть бд в которой накопилось очень много представлений, среди них есть те, которыми никто не пользуется и хотелось бы их удалить.
Для этого хочу узнать когда последний раз обращались к представлению(это возможно?), исходя из этого сформировать список неиспользуемых представлений для удаления.

Как это можно реализовать?
Или может есть еще какие то варианты?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
dimat
В любом виде 5я закладка Index -> Discard указывается через сколько дней данный вид очищать от индекса если он не используется.
Итого если вид не используется он ужимается сам.

Если уж очень приспичило прямо сейчас избавиться от вида то через администратор выделите нужную базу и правым кликом выберите самый нижний пункт Manage Views... получите список всех видов и папок а так же их размер.
По умолчанию если не меняли настройки вида, то через 45 дней они очищаются и их размер будет 0, это и позволит вам понять какие можно удалить.
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
В любом виде 5я закладка Index -> Discard указывается через сколько дней данный вид очищать от индекса если он не используется.
Итого если вид не используется он ужимается сам.

Если уж очень приспичило прямо сейчас избавиться от вида то через администратор выделите нужную базу и правым кликом выберите самый нижний пункт Manage Views... получите список всех видов и папок а так же их размер.
По умолчанию если не меняли настройки вида, то через 45 дней они очищаются и их размер будет 0, это и позволит вам понять какие можно удалить.
А програмно это можно узнать для каждого вида?

Добавлено:
Проблема в том что несипользуемых представлений (с размером индекса 0) больше 200. через Manage Views со списком представлений ничего не сделать. вот и хотелось бы програмно найти все представления с размером индекса 0 и удалить их.

Это возможно?
 
A

Akupaka

А зачем их совсем удалять? Если индексы пустые, то они не влияют на работоспособность БД, по-идее.
Думаю, что такую инфу можно получить через Notes API. Либо сделать скрин из Manage Views и пройтись по нему руцями.
А вообще, то необходимость вида определяют не через размер индекса, а из его целевого предназначения.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
dimat
Не задавался такой задачей, но вот вам начало:
Код:
Set nc = db.CreateNoteCollection(True)
Call nc.SelectAllIndexElements(True) ' - виды
nid = nc.GetFirstNoteId
For i = 1 To nc.Count
Set doc = db.GetDocumentByID(nid) ' Документ вида - возможно поле $ViewFormat содержит необходимую инфу
nid = nc.GetNextNoteId(nid)
Next
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Set nc = db.CreateNoteCollection(True)
Call nc.SelectAllIndexElements(True) ' - виды
nid = nc.GetFirstNoteId
For i = 1 To nc.Count
Set doc = db.GetDocumentByID(nid) ' Документ вида - возможно поле $ViewFormat содержит необходимую инфу
nid = nc.GetNextNoteId(nid)
Next
Это я уже сделал, вот как раз из какого поля выдирать размер индекса и не знал
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Я понятия не имею где он хранится, в этом и вопрос
 
N

nvyush

WinAPI и Notes C API как говорится, две большие разницы. О последнем информацию можно найти тут:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!