select
X.a,
SUM(x.B)
from (
values
('hello',1),
('hello',2),
('goodbye',1)
) as X(a,b)
GROUP BY X.a
HAVING SUM(b)>1
В Windows есть несколько опций.
Windows Performance Toolkit может использоваться для включения трассировки различных системных событий, включая файловый ввод-вывод, и включает инструменты для обработки и просмотра эти события. Вы можете использовать xperf, чтобы начать трассировку различных классов событий и сохранить их в ETL-файл, который затем можно будет обработать или просмотреть с помощью тех же инструментов позже.
Process Monitor от SysInternals - еще один, очень простой в использовании вариант, и позволяет быстро увидеть все обращения к файлам и реестру, выполняемые любым процессом в системе. http://blogs.msdn.com/carloc/archive/2008/10/31/how-to-automate-process-monitor.aspx также показывает, как запускать Process Monitor в автоматическом режиме. 1276] Если вы хотите сделать это полностью программно, вы можете использовать функции ETW (StartTrace, EnableTrace, и т. д.), чтобы привязать события ввода-вывода к файлу и сохранить в файл ETL. Пример кода здесь .
On windows, you can use process monitor to monitor process activity (io and registry). I guess this fits your need if you are not really want to know the system calls.
And you can use winapioverride32 to monitor api calls.
Другой инструмент трассировки Windows API: logexts.dll
(часть Debugging Tools for Windows ), который можно запустить из WinDbg / ntsd / cdb или через отдельную программу logger.exe
.