社区
MS-SQL Server
帖子详情
SQL insert update select的问题
mycodeis0000
2011-12-14 05:01:09
我想请问下 insert 10W条数据与select 10W条数据
为什么insert所花时间远远大于select呢?
我想指导其中的原理 不知道哪位大侠明白 指教下。
...全文
111
17
打赏
收藏
SQL insert update select的问题
我想请问下 insert 10W条数据与select 10W条数据 为什么insert所花时间远远大于select呢? 我想指导其中的原理 不知道哪位大侠明白 指教下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mycodeis0000
2011-12-19
打赏
举报
回复
你之前说到的编译问题,
10W条编译10W次
那如果写成存储过程
之前我说的那种情况1条SQL 更新10W条数据
与
10W更新语句都写到成存储过程
当程序去调用他们的时候是不是执行速度差不多呢?
因为我知道存储过程都是预编译的,但不知道是不是可以这样理解。
(当然这种做法不合理,我只是想弄明白)
笨笨一休
2011-12-16
打赏
举报
回复
抄一遍书比读一遍书费劲啊
baiying15
2011-12-15
打赏
举报
回复
[Quote=引用 6 楼 houyajin 的回复:]
引用 3 楼 qianjin036a 的回复:
写盘时,还要判断写在哪个存储页上,如果存储页满了还要新设一页,如果表有聚集索引而写入的又是插在中间的,那更慢,要在合适的地方把其他数据挪走,再插入.
读数据只要扫描一下,看是否符合条件,符合即读取,所以,写盘要比读盘慢多了.
学习了。
[/Quote] 学习
xqx_8888
2011-12-15
打赏
举报
回复
开销大
houyajin
2011-12-15
打赏
举报
回复
[Quote=引用 3 楼 qianjin036a 的回复:]
写盘时,还要判断写在哪个存储页上,如果存储页满了还要新设一页,如果表有聚集索引而写入的又是插在中间的,那更慢,要在合适的地方把其他数据挪走,再插入.
读数据只要扫描一下,看是否符合条件,符合即读取,所以,写盘要比读盘慢多了.
[/Quote]
学习了。
mycodeis0000
2011-12-15
打赏
举报
回复
你之前说到的编译问题,
10W条编译10W次
那如果写成存储过程
之前我说的那种情况1条SQL 更新10W条数据
与
10W条数据更新10W条数据都写成存储过程
当程序去调用他们的时候是不是执行速度差不多呢?
因为我知道存储过程都是预编译的,但不知道是不是可以这样理解。
(当然这种做法不合理,我只是想弄明白)
mycodeis0000
2011-12-15
打赏
举报
回复
是啊
我也都拼接成一条SQL执行的
但是客户那边的IT问我为什么执行5W条数据2秒不到(一条SQL执行5W条数据) 但FTP传输工具往数据库写数据却要花上几分钟(5W条SQL语句执行5W条数据)。
我也明白后者肯定花费时间要多,但主要是不明白为什么,也无法跟他解释
呵呵 谢谢你的指教!
-晴天
2011-12-15
打赏
举报
回复
经常看到新手在网页与数据库连接操作中,把语句放到循环中,那是最花时间的,如果能拼成一条语句,那效率就会提高很多.
-晴天
2011-12-15
打赏
举报
回复
[Quote=引用 9 楼 mycodeis0000 的回复:]
那请问
一条UPDATE 语句 执行10W条数据
与
10W条UPDATE语句执行10W条数据
他们的差别又在哪里
一条UPDATE 语句 执行10W条数据可能只需要花费几秒中或是几秒
10W条UPDATE语句执行10W条数据 确要花费几分钟
能不能像qianjin036a给出一个理论上的解释
[/Quote]
一条 update 语句,编译一次,更新一条也是编译一次,更新10W条也是编译一次,
但是 10W 条 update 语句,要编译 10 W 次,你说哪个花时间多?
mycodeis0000
2011-12-15
打赏
举报
回复
那请问
一条UPDATE 语句 执行10W条数据
与
10W条UPDATE语句执行10W条数据
他们的差别又在哪里
一条UPDATE 语句 执行10W条数据可能只需要花费几秒中或是几秒
10W条UPDATE语句执行10W条数据 确要花费几分钟
能不能像qianjin036a给出一个理论上的解释
有人知道不?
gogodiy
2011-12-15
打赏
举报
回复
insert还要记录日志。
mycodeis0000
2011-12-15
打赏
举报
回复
那请问
一条UPDATE 语句 执行10W条数据
与
10W条UPDATE语句执行10W条数据
他们的差别又在哪里
一条UPDATE 语句 执行10W条数据可能只需要花费几秒中或是几秒
10W条UPDATE语句执行10W条数据 确要花费几分钟
能不能像qianjin036a给出一个理论上的解释
勿勿
2011-12-14
打赏
举报
回复
写比读开销大,就这么一个道理!
--小F--
2011-12-14
打赏
举报
回复
insert into是表存在 然后插入数据 扫描次数多
select..into是创建新表 扫描一次
-晴天
2011-12-14
打赏
举报
回复
写盘时,还要判断写在哪个存储页上,如果存储页满了还要新设一页,如果表有聚集索引而写入的又是插在中间的,那更慢,要在合适的地方把其他数据挪走,再插入.
读数据只要扫描一下,看是否符合条件,符合即读取,所以,写盘要比读盘慢多了.
-晴天
2011-12-14
打赏
举报
回复
不说别的,光说磁盘读写,写盘比读盘慢多了!
pengxuan
2011-12-14
打赏
举报
回复
insert语句开销大
性能测试分析【慢
SQL
分析】慢日志设置+慢
SQL
分析工具
通过慢
sql
分析的学习,了解什么是慢
sql
,以及慢
SQL
会引起那些性能
问题
。清楚慢
sql
日志的设置,然后再通过慢
sql
分析工具的学习,清楚慢
sql
分析的步骤和流程。慢
sql
分析工具:my
sql
dumpslow工具、explain工具、profile...
SQL
中
insert
into
select
及
update
select
用法
并且字段相应也必须存在(2)注意Table2的主键约束,如果Table2有主键而且不为空,则 field1, field2…中必须包括主键(3)注意语法,不要加values,和插入一条数据的
sql
混了
INSERT
INTO
SELECT
的特殊用法:...
SQL
insert
和
update
一、
SQL
语句
insert
into数据三种方式 总结: 插入数据格式 1、手动输入插入的值
insert
into xx (name,age) values("xxx",23),("yy",23); 2、插入从另外一张表格中查询的值
insert
into xxx (name)
select
names ...
SQL
基础语法
select
|
insert
|
update
|delete(增删改查) 简单使用
SQL
基础语法
select
|
insert
|
update
|delete(增删改查) 简单使用 以下案列以此表举例 1、
select
(查询)
select
简单的查询分为两种 注:字段也就是表结构中的列的名称 第一种:
select
字段名 from 表名 此种...
SQL
中
update
select
SQL
中
update
select
最常用的
update
语法是:
UPDATE
SET = ,SET = 如果我的更新值Value是从一条
select
语句拿出来,而且有很多列的话,用这种语法就很麻烦 第一,要
select
出来放在临时变量上,有很多个...
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章