最终目标是拥有一个允许实时监控或回显插入到SQL数据库中的表的值的UI。此监视并不重要,因此保证传递的优先级低于对SQL Server性能的影响。有问题的表每分钟插入2k到5k行。
有哪些机制允许sql server触发并忘记对sql本身影响最小的队列或服务总线?
答案 0 :(得分:0)
SQL CLR有一些选项,如果它可用,要么使用从执行INSERT的其他SP调用的触发器或CLR SP。
您可以使用Service Broker将消息发送到另一台服务器,以分发负载。
由于监控并不重要,如果它只需要偶尔使用一次,您可以考虑使用SQL Profiler使用的相同挂钩的编程接口,或者SQL Profiler本身。
如果您的系统架构是客户端 - 服务器,您可以创建"任务"每当调用INSERT操作时进行日志记录/监视,并将它们排队到后台线程,在后台线程中可以以较低的优先级处理它们,甚至写入完全不同的数据库服务器,以避免影响性能。
不幸的是,如果您使用的是Azure,Service Broker和SQL Profiler都无法使用。