2015-07-09 2 views
1

Я хочу реализовать функцию, которая покажет пользователям, сколько раз просматривалась запись (был выбран SQL), но не знаю, как лучше всего это сделать. Единственный способ, которым я могу сейчас подумать, - это получить все RECID, которые были выбраны, а затем использовать массовое обновление xml для обновления счетчика просмотров. Есть ли лучший способ или дизайн таблицы для подсчета просмотров? Благодаря!Как узнать, сколько раз просматривалась запись (SELECTED)?

--------------- 
| recordID | 
| recordValue | 
| viewCount |   
--------------- 
+0

Я представляю какую-то комбинацию вида, триггера и/или хранимой процедуры. Тем не менее, если вы не пытаетесь сделать какой-то код инструментарий, «количество просмотров» обычно является частью * бизнес-домена; * то есть вы не обязательно хотите знать, сколько раз таблица записей доступ к ним, а скорее, сколько раз обращался к счету (или к другому бизнес-объекту) и кем. –

+0

Спасибо, что ответили, но цель состоит в том, чтобы узнать, сколько раз была сделана запись в таблице, и мне интересно, есть ли лучший дизайн таблицы для этого? –

+0

Что-то вроде этого, может быть? http://stackoverflow.com/questions/2155594/how-can-i-tell-if-a-database-table-is-being-accessed-anymore-want-something-lik –

ответ

1

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

SELECT 
    QueryDate=execquery.last_execution_time, 
    SQLString=execsql.text, 
    QueryCount=execution_count 
FROM 
    sys.dm_exec_query_stats AS execquery 
    CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql 
ORDER BY 
    execquery.last_execution_time DESC 
+0

Если это возможно, это должно быть сделано, если пользователи должны получить доступ к таблице через какой-либо механизм, например, хранимую процедуру или представление, возможно, в сочетании с каким-то триггером. Затем вы можете выполнить любой уровень аудита, который вы хотели. –

+0

Это хороший момент. Если дополнительные запросы не нуждаются в проверке, то способ, которым вы описываете, звучит, более того, это, на мой взгляд, способ доступа приложений к данным. Единственный вопрос, связанный с этим подходом, - это багаж, который будет переноситься с каждой новой хранимой процедурой отчетности и/или созданным представлением. –

+0

Спасибо! Я попробую! –

Смежные вопросы