1
35
|
2
19
您的字符串连接逻辑可能可以简化:
这将为您节省一些字符串连接,这在.Net中非常昂贵。
注: 有人在评论中问我,这是否可以节省任何字符串连接(它确实需要)。我认为这是一个很好的问题,我想继续问下去。 如果你剥开绳子,加入 Reflector 您将看到,Microsoft正在使用一些不安全的(在.Net意义上)技术,包括使用char指针和名为unsecharbuffer的结构。当你把它归结起来时,他们所做的就是使用指针遍历空字符串并建立连接。请记住,字符串连接在.Net中如此昂贵的主要原因是每次连接都会在堆上放置一个新的字符串对象,因为字符串是不可变的。那些内存操作很昂贵。Join(..)本质上是分配内存一次,然后用指针对其进行操作。非常快。 |
3
8
然后你用它来表示:
|
4
5
你要么做你已经得到的事情,传入一个带分隔符的字符串,然后解析出一个表值,要么另一个选择是传入一堆XML,大致相同:
|
5
5
|
6
2
看到了吗 http://www.sommarskog.se/arrays-in-sql-2005.html 详细讨论这个问题以及您可以使用的不同方法。 |
7
2
下面是对sqlteam.com中表值参数的一个非常清晰的解释: Table Valued Parameters |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |