1. 如何解决执行sql存储过程(大数据量复杂的sql计算操作)时,不影响用户使用
对实时性不是非常必须的功能,不要放在主业务集中操作的同时操作。这个需要引导客户。
系统的开销就在那里摆着,没有别的办法,一运行资源就占了,CPU 资源,数据库资源,内存资源。
两个办法:一个是做一个数据库复制,可以半天复制一次,也可以一天复制一次(闲时复制),根据用户对数据的敏感度决定,存储过程运行不限时间,运行时访问复制数据库,不影响主数据库。需要额外资源:数据库服务器,数据库复制时间和网络资源开销;
第二个是定制成任务,闲时执行结果放到指定表中,或者直接以文件形式导出在服务器指定位置。用的人直接读记录或者读文件就OK 了。
请参考。
2. sql Sum() 统计,比较复杂哦,
你想要什么啊
3. SQL SELECT复杂查询如何实现
这个语句拼命地用join就行了。
SELECT 销售主表.录入时间,客户表.客户名,货品表.货品名称,销售明细表.数量,销售明细表.销售单价,销售明细表.数量*销售明细表.销售单价 AS 金额
FROM 销售主表 join 客户表 on 销售主表.客户ID=客户表.客户ID join 销售明细表 on 销售表表.销售单号=销售明细表.销售单号 join 货品表 on 销售明细表.货品ID=货品表.货品ID
这样就所有对应的记录都选出来了,如果要加上条件,就在语句后面加上where ……
4. sql复杂统计
可能是我没看明白问题,按照我对问题的理解,解决如下:
select num,count(*) from tongji group by num
只是单纯的分组并统计各自组的数量,前提是你的表中,与编号相对应的数量都是1。如果不为1的话,就麻烦一点,估计需要用到存储过程。