我在Azure上有数据库。每天在Query Performance Insights中,我都会在前5个长期运行的查询中得到相同的查询。这是SELECT Id FROM MyTable
查询。
我认为这可能是我的代码,因此我添加了Include
来将来自MyTable
的记录包括到查询中(使用EF,无延迟加载)。但这无济于事。
还检查了存储过程,但没有运气(找不到可以使用MyTable
的地方)。
我可以找个可以在我这边叫这个SELECT查询的地方吗?
我可以从sys.query_store_plan
获取query_plan,但这对我没有多大帮助。
答案 0 :(得分:0)
按this page进行操作,看来您应该能够在Azure数据库上运行跟踪。假设使用适当的过滤选项,它可能会帮助您确定查询的来源或运行时间。 (免责声明:我对此没有经验)
如果您想知道哪些对象正在使用该表,则可以在sys.sql_dependencies
或sys.sql_modules
中查找。前者更易于查询,但由于部署对象的顺序和/或使用动态SQL可能会丢失依赖项。后者在该部门有更好的机会,但是有点破绽,可能会带来误报。
SELECT Object_Name(object_id) FROM sys.sql_dependencies WHERE referenced_major_id = Object_Id('<table name>')
SELECT Object_Name(object_id) FROM sys.sql_modules WHERE definition LIKE '%<table name>%'