Guest User

Untitled

a guest
Nov 24th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. USE master;
  2. GO
  3. CREATE SERVER AUDIT Test_Server_Audit
  4. TO FILE ( FILEPATH = 'C:Audits' );
  5. GO
  6. ALTER SERVER AUDIT Test_Server_Audit
  7. WITH (STATE = ON);
  8. GO
  9.  
  10. USE AdventureWorks;
  11. GO
  12. CREATE DATABASE AUDIT SPECIFICATION Test_Database_Audit
  13. FOR SERVER AUDIT Test_Server_Audit
  14. ADD (SELECT ON Person.Address BY PUBLIC)
  15. WITH (STATE = ON);
  16. GO
  17.  
  18. SELECT *
  19. FROM Person.Address;
  20. GO
  21.  
  22. SELECT *
  23. FROM fn_get_audit_file('C:Audits*', NULL, NULL);
  24. GO
  25.  
  26. USE AdventureWorks;
  27. GO
  28. ALTER DATABASE AUDIT SPECIFICATION Test_Database_Audit
  29. WITH (STATE = OFF);
  30. GO
  31. DROP DATABASE AUDIT SPECIFICATION Test_Database_Audit;
  32. GO
  33. USE master;
  34. GO
  35. ALTER SERVER AUDIT Test_Server_Audit
  36. WITH (STATE = OFF);
  37. GO
  38. DROP SERVER AUDIT Test_Server_Audit;
  39. GO
  40.  
  41. SET ANSI_WARNINGS OFF;
  42. SET NOCOUNT ON;
  43. GO
  44.  
  45. ;WITH agg AS
  46. (
  47. SELECT
  48. last_user_seek,
  49. last_user_scan,
  50. last_user_lookup,
  51. last_user_update
  52. FROM
  53. sys.dm_db_index_usage_stats
  54. WHERE
  55. database_id = DB_ID()
  56. )
  57. SELECT
  58. last_read = MAX(last_read),
  59. last_write = MAX(last_write)
  60. FROM
  61. (
  62. SELECT last_user_seek, NULL FROM agg
  63. UNION ALL
  64. SELECT last_user_scan, NULL FROM agg
  65. UNION ALL
  66. SELECT last_user_lookup, NULL FROM agg
  67. UNION ALL
  68. SELECT NULL, last_user_update FROM agg
  69. ) AS x (last_read, last_write);
  70.  
  71. ALTER DATABASE whatever SET OFFLINE;
  72.  
  73. ALTER DATABASE whatever SET ONLINE;
  74.  
  75. CREATE PROCEDURE [dbo].[sp_TakeInactiveDbOffline]
  76. @dbname varchar(100)
  77. AS
  78. BEGIN
  79.  
  80. SET NOCOUNT ON;
  81.  
  82. -- SQL credit: https://dba.stackexchange.com/a/86619/106936
  83. --SELECT last_user_seek, last_user_scan, last_user_lookup, last_user_update FROM sys.dm_db_index_usage_stats WHERE database_id = DB_ID(@dbname)
  84. if @dbname not in ('model', 'master', 'tempdb', 'msdb') and not exists (SELECT last_user_seek, last_user_scan, last_user_lookup, last_user_update FROM sys.dm_db_index_usage_stats WHERE database_id = DB_ID(@dbname))
  85. BEGIN
  86. exec ('ALTER DATABASE ' + @dbname + ' SET OFFLINE');
  87. END
  88.  
  89. END
  90.  
  91. DECLARE @command varchar(1000)
  92. SELECT @command = 'exec sp_TakeInactiveDbOffline ?'
  93. EXEC sp_MSforeachdb @command
Add Comment
Please, Sign In to add comment