重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可能是因为系统的临时数据库tempdb满了,或者是被阻塞之类的
成都创新互联公司专注于夏津企业网站建设,成都响应式网站建设公司,商城网站制作。夏津网站建设公司,为夏津等地区提供建站服务。全流程按需网站设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
重新启动一下数据库(在控制面板的服务里面重新启动sqlserver),应该就好了。sqlserver每次启动都会重新建立tempdb表。
速度不算太快,也能接受,我写SQL增量导入10M数据的excel,里面有15张表,最大的单表约有5000行,220列,总计耗时3-5分钟。如果用数据导入导出向导简单导入的话,略快一点点。bcp会更快一些,只是要求数据是utf-8的csv格式。
你把整个插入过程涉及到的语句好好分析一下,假如你用了
insert into table1
select * from table2 where ....
这种类似的形式时,先检查where条件语句中是否有合适的索引。
速度慢绝大部分情况下,是因为SQL语句不良,比如某语句做了table scan或者聚焦索引的扫描等。如果你的语句能做到聚焦索引查找或者非聚焦索引的查找,插入数据的速度就会显而易见的提高。
首先应该确定是谁慢的,往往是程序处理方面的问题而不是数据库的问题。
程序方面应该尽可能的减少数据查询返回的内容,减少IO压力,磁盘IO和网络IO是非常非常慢的。比如可以查询返回ID,然后再根据ID一条一条的查询具体内容,看似慢了,在数据量大的时候快很多
对于数据可以参照下面几点
1、优化SQL语句,SQL语句对查询速度影响最大的
2、对于经常查询的字段作索引。但是这样会增加修改时的压力
4、优化SQLServer,比如给其分配固定的内存,预先分配查询内存,调整CPU使用率等。SQL Server 可以占用几乎所有Windows的内存,但是申请内存开销很大。因此可以设定其使用固定大小内存,比如启动就分配1G以上内存。
5、优化硬件资源,比如使用更高的服务器或者硬盘,独立安排数据库的数据文件和索引文件,将数据文件分布于不同的物理硬盘上等等
6、考虑使用分布数据库或者对大表进行拆分
批量导数据使用BCP导出,再用ociuldr导入到ORACLE,性能杠杠的。
我10G的数据不到一个小时就导完了
慢的三个原因,IOPS,CPU,内存,锁。
数据库默认是占满内存做缓存的,如果你有2个不同的数据库,内存不分配好,就出现争用内存的情况。
CPU一般建议80%左右,索引、大逻辑查询,count等统计信息都是走CPU,CPU高肯定慢。
IOPS,就是写入速度,如果经常批量写数据,批量查数据,或者直接全部数据读取后给前端处理,IOPS不足就会影响数据吞吐形成等待。
锁,也就是事务,大量事务会出现枪锁情况,这个情况也会等待,甚至死锁。