ОБСУЖДЕНИЕ

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

10 ответов 5,8 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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

Как это можно реализовать?
Или может есть еще какие то варианты?
 
dimat
В любом виде 5я закладка Index -> Discard указывается через сколько дней данный вид очищать от индекса если он не используется.
Итого если вид не используется он ужимается сам.

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

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

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

Это возможно?
 
А зачем их совсем удалять? Если индексы пустые, то они не влияют на работоспособность БД, по-идее.
Думаю, что такую инфу можно получить через Notes API. Либо сделать скрин из Manage Views и пройтись по нему руцями.
А вообще, то необходимость вида определяют не через размер индекса, а из его целевого предназначения.
 
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
 
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,
Последний ответ от
nvyush,
Ответы
10
Просмотры
5 795