小编use*_*839的帖子

同时通话

我正在尝试通过查看日期时间范围来计算特定呼叫时的同时呼叫数.我的查询有效,但只需要约10分钟即可执行95,000条记录,这太长了.任何优化的想法?

SELECT r.*,
       rr.ChannelsActive  'ChannelsActive'
FROM #rg r
OUTER APPLY
(
      SELECT SUM(1) AS ChannelsActive
      FROM #rg r_inner 
      WHERE 
      (
             r_inner.CallStart BETWEEN r.CallStart AND r.CallEnd 
            OR r_inner.CallEnd BETWEEN r.CallStart AND r.CallEnd
            OR r.CallStart BETWEEN r_inner.CallStart AND r_inner.CallEnd 
            OR r.CallEnd BETWEEN r_inner.CallStart AND r_inner.CallEnd

      )
 ) rr
Run Code Online (Sandbox Code Playgroud)

示例数据

CREATE TABLE #rg
  (
     CallStart DATETIME,
     CallEnd   DATETIME
  )

CREATE INDEX ix1
  ON #rg(CallStart, CallEnd)

CREATE INDEX ix2
  ON #rg(CallEnd, CallStart);

WITH T(N, R)
     AS (SELECT TOP (95000) ROW_NUMBER() OVER (ORDER BY (SELECT …
Run Code Online (Sandbox Code Playgroud)

sql sql-server performance intervals

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

性能:两个查询之间有什么区别

我原本写了以下内容

SELECT t1.TransactionNumber
FROM t1
    JOIN
    (
          SELECT MAX(id) id
          FROM t1
          WHERE Period BETWEEN '01-11-2013' and '01-12-2014'
          GROUP BY AccountNumber
    ) t2
        on t1.id= t2.id
Run Code Online (Sandbox Code Playgroud)

但它太慢了.花了大约20秒,所以作为测试,我将其更改为以下内容

 SELECT MAX(id) AS id
 INTO #t2
 FROM t1
 WHERE Period BETWEEN '01-11-2013' and '01-12-2014'
 GROUP BY AccountNumber

 SELECT t1.id 
 FROM t1
    JOIN #t2 t2
        ON t1.id= t2.id
Run Code Online (Sandbox Code Playgroud)

第二个查询仅运行1秒.第二个查询使用PK密钥执行索引查找,而第一个键执行扫描.

注意:id是聚集在t1表上的主键.

sql sql-server-2008

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

网页抓取导致 403 禁止错误

我正在尝试使用 BeautifulSoup 从 SeekingAlpha 中抓取每家公司的收入。但是,该站点似乎正在检测到正在使用网络抓取工具?我收到“HTTP 错误 403:禁止”

我试图抓取的页面是:https : //seekingalpha.com/symbol/AMAT/earnings

有谁知道可以做些什么来绕过这个?

python beautifulsoup web-scraping python-3.x

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