最近我注意到我公司的应用程序使用AddWithValue将参数值传递给动态的参数化查询。例子:
cmd.Parameters.AddWithValue("@VehicleId", Vehicles.VehicleId);
Run Code Online (Sandbox Code Playgroud)
在数据库中,该数据类型VehicleID是INT。
据我了解,由于 AddWithValue(已弃用)未指定数据类型/长度,因此此“@VehicleID”被转换并可能被错误转换。在“INT”的情况下,该转换是否会影响 SQL Server 性能?
这会导致计划缓存污染之外的问题吗?转换是否会导致性能下降?
我最近接管了一个可用性组的管理工作,该组由两个节点组成,同步提交模式。
我的理解是,当Yes两个副本上的 Readable Secondary 选项都设置为时,任何带有 applicationIntent=ReadOnly 的连接字符串都将路由到 Node1。
同样,如果我将 Node2 的 Readable Secondary 选项更改为“Read-intent”,则任何具有 applicationIntent=ReadOnly 的连接字符串都将路由到 Node2。
那么,为什么当两个节点都设置为“Readable Secondary = Yes”时,此连接字符串会路由到 Node2:
'数据源=redacted.domain.com; 初始目录= MyDatabase; ApplicationIntent=只读;用户 ID=用户;密码=********;MultiSubnetFailover=True'
基本上,将“ReadOnly”参数更改为“ReadWrite”会导致连接转到 Node1。改回“只读”会导致连接路由到 Node2。如果没有“Readable Secondary= Read-intent”选项,这怎么可能?
编辑:输出
SELECT ag.name as "Availability Group", ar.replica_server_name as "When Primary Replica Is",
rl.routing_priority as "Routing Priority",
ar2.replica_server_name as "RO Routed To",
ar.secondary_role_allow_connections_desc,
ar2.read_only_routing_url
FROM sys.availability_read_only_routing_lists rl
inner join sys.availability_replicas ar on rl.replica_id = ar.replica_id
inner join sys.availability_replicas ar2 on rl.read_only_replica_id = ar2.replica_id
inner join sys.availability_groups …
与开发人员谈论SqlDataAdaptervs的使用SqlDataReader并阅读此内容:https : //stackoverflow.com/questions/1676753/sqldataadapter-vs-sqldatareader
几乎没有解释从 切换SqlDataAdapter到对 SQL Server 的影响SqlDataReader。
我知道SqlDataReader可能会增加连接对 SQL Server 开放的时间长度,这在有效使用池连接时肯定是一个问题。
除此之外,使用SqlDataReader而不是对 SQL Server 有什么影响SqlDataAdapter?有没有人观察到此更改对 SQL Server 的影响?
sql-server ado.net application-design data-tier-application sql-server-2016
谁能告诉我为什么这对我不起作用?
CREATE TABLE #UndistributedCmds
(
pendingcmdcount int,
estimatedprocesstime INT
)
INSERT INTO #UndistributedCmds
EXEC sp_replmonitorsubscriptionpendingcmds ...
Run Code Online (Sandbox Code Playgroud)
错误:
消息 8164,级别 16,状态 1,过程 sp_replmonitorsubscriptionpendingcmds,第 152 行
INSERT EXEC 语句不能嵌套。
该错误似乎暗示存储过程定义的第 152 行是问题所在,但我无法理解这一点。这是因为存储过程本身有多个存储过程吗?