我正在尝试通过查看日期时间范围来计算特定呼叫时的同时呼叫数.我的查询有效,但只需要约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) 我原本写了以下内容
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表上的主键.
我正在尝试使用 BeautifulSoup 从 SeekingAlpha 中抓取每家公司的收入。但是,该站点似乎正在检测到正在使用网络抓取工具?我收到“HTTP 错误 403:禁止”
我试图抓取的页面是:https : //seekingalpha.com/symbol/AMAT/earnings
有谁知道可以做些什么来绕过这个?