数据量大自然会很慢,要看下你服务器的吞吐量如何,服务器配置是否满足大数据量的采集工作;你采集的数据库是否与业务数据库是同一个呢?如果是的话肯定会影响效率的;
方法好多
1、优化代码,找个好程序员。
2、升级网络
3、升级数据库服务器硬件,加内存、换好硬盘、换好CPU。
优化代码需要优化哪些细节呢,我是新手代码写得很简单,就解析返回参数放到实体类,sql查询是否存在,sql添加或sql修改
@TingZi_Unique: 这么说吧,新手和老手的效率可以差别1000倍。
你有时间学个三五年,效率总是能慢慢提升的,你没有时间有商业模式或者有钱,就找个厉害点的,
就是看钱和时间哪个对你更加重要。
我写的代码,一台服务器2万元可以服务N个客户端,别人写的,需要10台服务器才能服务同样的客户端,
这个不是两句话可以说得清楚的。
需要知道你的业务,分析哪些是重要的,哪些是不重要的,哪些频次高,哪些频次低,
数据是常变的,还是一次性的,如何设计数据库结构,如何设计代码结构。
你学一点就提升一点呗...
首先确保 从网络上获取数据 和 向数据库写入数据,这两个过程是分离的。
其次测试把一条已经获取的数据写入数据库花了多久。
总之,你先要搞清楚是在哪个步骤拖累了速度的。
恩,加日志,看什么地方耗时多,进行优化。
非业务类数据不应该用sql数据库。无论你怎么优化,3s只能取2。或者你建集群,提升整体能力。
肯定需要组合拳,没有一招鲜
可能是“sql查询是否存在”这个地方性能问题严重,解决方法:
1、你可以在程序启动时把已存在的唯一标识load到内存或者文件,后面根据这个唯一标识判断是否存在,不要去数据库查询;
2、不检查是否存在直接写入中间表,后台作业定时将中间表的数据写入。
1.看看是否带宽问题;
2.需要明确是采集(下载)的速度慢还是录入数据库的慢;
3.是否一条条插入 insert,可以修改成批次插入 sqlbulkcopy;试下异步方法;还是数据库死锁等原因造成。
分数据库操作,操作时锁数据库