我的重新编号通知代码:
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var Bil = xhttp.responseText;
document.getElementById("MsgNoti").innerHTML = Bil;
if ( Bil != ""){
if (ChkSession != "Mobile"){
window.open("Message/ViewMsgPopUp.asp", "", "width=900,height=600,top=25,left=100");
}
}
}
};
xhttp.open("GET", "CheckMsg1.asp", true);
xhttp.send();
}
这是CheckMsg1.asp中的代码
SQL ="select count(MsgID) over() as bil, MsgID from Msg where PopUpStatus = 'TRUE'"
set read = conn.execute(SQL)
if read.eof then
Bil = "0"
else
Bil1= read("bil")
end if
read.close()
Conn.Close()
response.write(Bil1)
我的代码有问题吗?为什么这个代码在25-30用户使用时会在服务器中产生高CPU进程。 AJAX可以在7秒内运行Javascript计时器。请帮忙给我任何建议?此代码在ASP Classic中运行
答案 0 :(得分:0)
你能试试吗
select count(MsgID) from Msg where PopUpStatus = 'TRUE' Group by MsgId
我认为Msg表有这么多数据,count()函数扫描表中的所有数据。这很昂贵。
我对你的问题有所了解
1-)您可以使用Nosql db(Mongo,Raven tec。)代替Msg表。只需在Nosql db上写入和读取Msg数据。
2-)尝试在Msg表
上添加索引PopUpStatus3-)您可以使用汇总表来计算Msg表的数量。你可以在db这个作业上写一个作业得到Count Msg表然后写计数值不同的表