到新公司先看了看數據庫的性能,查看一個存儲占用的CPU巨多,而且執行次數也特別多,打開一看:
alter
?
PROCEDURE
?
[
dbo
]
.
[
IPLogInsert
]
?
???
@IP
?
char
(
15
)?
=
?
'
255.255.255.255
'
?
?
AS
?
?
BEGIN
??
?
SET
?NOCOUNT?
ON
;??
declare
?
@currId
?
int
??
declare
?
@today
?
datetime
??
--
SET?@currID?=?0??
SET
?
@today
?
=
?
getdate
()?????
SELECT
?
@currId
?
=
?id????
from
?IPLog????
where
?
convert
(
char
(
10
),?
@today
,
101
)?
=
?
convert
(
char
(
10
),AccessTime,?
101
)????
and
?
@IP
?
=
?IP??
if
(?
@currID
?
=
?
0
)??
?
insert
?
into
?IPLog?(AccessTime,IP,
[
Count
]
)???
?
values
?(
@today
,?
@IP
,?
1
)?
?
else
???
?
update
?IPLog????
?
SET
?
[
count
]
=
[
count
]
+
1
???
?
WHERE
?
convert
(
char
(
10
),?
@today
,
101
)?
=
?
convert
(
char
(
10
),AccessTime,?
101
)?????
and
?
@IP
?
=
?IP?
?
END
??
很是汗顏啊!一個簡單的需求被寫成了這樣。
最后我改成的是:
update
?IPlog?
set
?
Count
?
=
?
Count
+
1
?
where
?Ip?
=
?
@IP
?
and
?AccessTime?
between
?
dateadd
(
day
,
1
,
datediff
(
day
,
0
,
@today
-
1
))?
and
??
dateadd
(
day
,
1
,
datediff
(
day
,
0
,
@today
))
if
(
@@rowcount
?
=
0
)
begin
????
insert
?
into
?IPLog?(AccessTime,IP,
[
Count
]
)???
values
?(
@today
,
@IP
,
1
)
前一個是將字段轉成了char然后再比較,很無賴啊。


















很是汗顏啊!一個簡單的需求被寫成了這樣。
最后我改成的是:





前一個是將字段轉成了char然后再比較,很無賴啊。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
