2016-08-16 11 views
0

Я хочу знать последнее время обновления таблицы DB кэша Intersystems. Пожалуйста, дайте мне знать соответствующую команду. Я пропустил их командную документацию:команда cache intersystems для получения последней обновленной метки времени таблицы

http://docs.intersystems.com/latest/csp/docboo/DocBook.UI.Page.cls?KEY=GTSQ_commands 

Но я не вижу такой команды там. Я также попытался найти по этому вопросу:

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_currenttimestamp 

Это не полная документация команд?

ответ

1

Cache 'по умолчанию не сохраняет «последнюю обновленную» информацию, так как это может привести к ненужному снижению производительности на операциях DML.

Вы можете добавить это поле вручную к каждой таблице интереса:

Property LastUpdated As %TimeStamp [ SqlComputeCode = { Set {LastUpdated}= $ZDT($H, 3) }, SqlComputed, SqlComputeOnChange = (%%INSERT, %%UPDATE) ]; 

Таким образом, было бы сохранить время последнего обновления/Вставка для каждой строки, но все равно это не поможет вам Изъять.

В качестве альтернативы - вы можете настроить триггеры для каждой операции DML, которая будет сохранять временную метку в отдельной таблице.

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