小编Pet*_*ter的帖子

AddWithValue 性能和计划缓存影响

最近我注意到我公司的应用程序使用AddWithValue将参数值传递给动态的参数化查询。例子:

cmd.Parameters.AddWithValue("@VehicleId", Vehicles.VehicleId);
Run Code Online (Sandbox Code Playgroud)

在数据库中,该数据类型VehicleIDINT

据我了解,由于 AddWithValue(已弃用)未指定数据类型/长度,因此此“@VehicleID”被转换并可能被错误转换。在“INT”的情况下,该转换是否会影响 SQL Server 性能?

这会导致计划缓存污染之外的问题吗?转换是否会导致性能下降?

ado.net parameter c# sql-server-2016

4
推荐指数
2
解决办法
2626
查看次数

始终在读意图

我最近接管了一个可用性组的管理工作,该组由两个节点组成,同步提交模式。

该组的配置如下所示: 可用性组属性

我的理解是,当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 …

availability-groups sql-server-2016

3
推荐指数
1
解决办法
3458
查看次数

DBA 的 SqlDataAdapter 与 SqlDataReader

与开发人员谈论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

2
推荐指数
1
解决办法
896
查看次数

简单地插入到临时表并失败

谁能告诉我为什么这对我不起作用?

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 行是问题所在,但我无法理解这一点。这是因为存储过程本身有多个存储过程吗?

sql-server stored-procedures t-sql temporary-tables

1
推荐指数
1
解决办法
4528
查看次数