我有一个Azure SQL(S3)地理复制只读数据库。
我的问题是,当我从VisualStudio查询只读数据库时,我可以看到查询命中主数据库。
我希望查询命中只读数据库。
但是,如果我使用SMSM连接到只读数据库运行相同的查询,我可以看到只读数据库被命中。这符合预期。
为了查看每个数据库中的最后一个查询,我使用以下SQL。
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script] 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
问题:
为什么我的C#(entityframework 6.0)代码没有显示在只读数据库中?
背景:
目标是拥有一个只读SQL来处理外部API负载,以便主SQL不要过载。
在Azure门户中,我创建了与主数据库位于同一区域的地理复制SQL。
连接字符串设置为只读数据库。我尝试使用[ApplicationIntent = ReadOnly]标志在连接字符串中,但没有成功。
但是,如果我使用SMSM连接到只读数据库运行相同的查询,我可以看到只读数据库被命中。这符合预期。
为了查看每个数据库中的最后一个查询,我使用以下SQL。
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script] 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
问题:
为什么我的C#(entityframework 6.0)代码没有显示在只读数据库中?
背景:
目标是拥有一个只读SQL来处理外部API负载,以便主SQL不要过载。
在Azure门户中,我创建了与主数据库位于同一区域的地理复制SQL。
连接字符串设置为只读数据库。我尝试使用[ApplicationIntent = ReadOnly]标志在连接字符串中,但没有成功。
ApplicationIntent=ReadOnly;
的连接。你是直接从配置文件中读取连接字符串还是之后修改它呢? - Panagiotis KanavosSELECT DATABASEPROPERTYEX(DB_NAME(),'Updateability')
,使用SqlCommand.ExecuteScalar
。 - Panagiotis Kanavos