小编Djo*_*jof的帖子

比较字符串结尾的最佳方法是使用RIGHT,LIKE还是其他?

我需要将字符串的结尾与存储过程中可能结束的列表进行比较.这将被称为很多,并有大约10-15个候选人结局.此时,仅代码解决方案优于创建专用于此的表.有点像:

IF (ENDSWITH(@var, 'foo') OR
    ENDSWITH(@var, 'bar') OR
    ENDSWITH(@var, 'badger') OR
    ENDSWITH(@var, 'snake'))
(
)
Run Code Online (Sandbox Code Playgroud)

我正在寻找速度方面的最佳方式,同时也是可维护性.我知道的候选人是

  • 对,我最喜欢的,但这意味着我必须对字符串长度进行硬编码,因此容易出错.它还意味着多次切割源字符串.

    IF ((LEN(@var) >= 3 AND RIGHT(@var, 3) = 'foo')) OR ...
    
    Run Code Online (Sandbox Code Playgroud)
  • 喜欢,可能更慢,但有点清洁

    IF (@var LIKE '%foo') OR ...
    
    Run Code Online (Sandbox Code Playgroud)
  • CHARINDEX,因为它搜索整个字符串,所以可能更慢

  • SUBSTRING,很可能等同于RIGHT而且更难看

  • SQLCLR创建我自己的ENDSWITH,它可以很快

可能有更好的方法我不知道.你怎么看?

sql t-sql sql-server optimization string-comparison

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

有人可以解释这些apache替补结果,有什么突出的东西吗?

在此输入图像描述

下面是一个带有50个并发线程的10K请求的apache bench运行.

我需要帮助理解结果,结果中是否有任何突出的结果可能指向阻塞并限制每秒更多的请求?

我正在查看连接时间部分,并看到"等待"和"处理".它显示等待的平均时间是208,连接的平均时间是0,处理是208 ..总计是208.有人可以向我解释,因为它对我没有多大意义.

tcp scalability http apachebench server

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