如果输入一条查询一张表的sql语句,但数据库执行缓慢,如何并采取啥样的方法对数据库进行优化?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果输入一条查询一张表的sql语句,但数据库执行缓慢,如何并采取啥样的方法对数据库进行优化?相关的知识,希望对你有一定的参考价值。

最有效的方法:创建索引!

如:select * from 产品 where 产品ID=\'1234\'

那么,在“产品ID”字段上如果创建的索引,则查询速度将会大大加快。

另外,
1、还可以通过Where条件,减少每次查询的数据量。
2、将查询语句放在存储过程中,因为存储过程中的语句在首次调用时会被编译,以后再次调用进直接执行编译过的程序。
参考技术A 1.对表格进行优化。创建索引可以大大的加快查询的速度。
2。对你的语句进行优化。where语句中执行的顺序是:从右往左,从下往上。所以
(1)能排除最多数据的条件应该写在最外面。
(2)如果是多表关联的,那么关联表应该放在中间,数据少的表放最后
(3)尽量不要用select *,因为这样数据库是进行全表扫描,相当于select 所有字段,尽量选需要的吧
参考技术B 慢的原来有很多种,你要从多方面去查找原因。你可以百度下数据库优化。 参考技术C 你这说的完全让人搞不懂得,这个可能是数据过多的原因,也可能是你没见相应的主键之类的!反正这个没法解决的。

sql语句从一张表查询一个字段值插入另一个表中

如:insert into a(name, num, class) value("小米",“1001”, class);
class的值是从表b中获取:select class from b where name = “小米”;
如何将上面合成一条sql语句,数据库mssql,求指导

标准SQL语句格式:

INSERT 

INTO 表名(字段名)

select 字段名

from 表面

例子:将查询出的s表中sno,j表中jno,p表中pno插入spj表中

insert 

into spj(sno,jno,pno)

select sno,jno,pno

from s,j,p


扩展资料:

SQL导入语句

如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句:

insert into openrowset('MSDASQL', 

'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\\', 

'select * from [aa.DBF]') 

select * from 表

说明:

SourceDB=c:\\ 指定foxpro表所在的文件夹 

aa.DBF 指定foxpro表的文件名。

参考技术A insert into a(name,num,class) values('小米','1001',(select class from b where name = '小米'));

追问

这样也不行呀 这样的话整条都插不进去

追答

是不是表b中name等于小米的class值不止一个?如果这样的话你必须保证等于小米的class是一个值,上述语句才可以.

追问

sql语句错误:在此上下文中不允许使用子查询。只允许使用标量表达式。显示的是这样的

追答

是哪个环境?SQL Server还是oracle?

追问

解决了,是这样写insert into a(name,num,class) select '小米','1001',class from b where name = '小米';

本回答被提问者和网友采纳
参考技术B http://zhidao.baidu.com/link?url=jcAjwsJyCud_GET0-RpXIp754kTnJQU00L6RRe2gbXbvfKfYgnHoWtM2z4YVrgt-ZzBpTlSwPNOJ2g5PcAwSMK追问

我和他的不一样,表a中是有其他数据插入的,只查询表b中的一个字段的值

追答insert into a(name,num,class) values('小米','1001',(select top 1 class from b where name = '小米'));

追问

sql语句错误 在此上下文中不允许使用子查询。只允许使用标量表达式。

参考技术C insert into a(产品,编号, 类型)
select 产品,编号, 类型 from b
where 产品=‘小米’

以上是关于如果输入一条查询一张表的sql语句,但数据库执行缓慢,如何并采取啥样的方法对数据库进行优化?的主要内容,如果未能解决你的问题,请参考以下文章

怎样用Sql语句判断一张表中的两条数据相同

sql语句 怎么从一张表中查询数据插入到另一张表中

SQL SERVER,一张表中,有多个字段关联另一张表,怎么写SQL语句?

如何用SQL语句查询两张表中的相同字段数据

SQL语句循环一张表的一个字段ID,根据这个字段的内容去修改另一张表,

如何用标准SQL语句给一张表中添加多个字段