① 这个sql语句写的有错误,要怎么改呢
INSERT INTO [fixoa].[dbo].[OA_T_KQLB]([Name])
SELECT [EmplName] FROM [srv_lnk].[a1].[dbo].[HrEmployee] where CardID in (select CardNo FROM [fixoa].[dbo].[OA_T_KQLB])
用的是insert into 而非 insert
where CardID = (select...)
如果(select...)反馈的是多条记录,就用where CardID in (select...)
② 提高写SQL语句的能力
个人觉的写一段sql语句时先用简单语言写一遍,把他们的关系搞清,像多层嵌套之类的就会有很好逻辑,条理也清晰。。。
③ SQL 语句执行感觉很慢,怎么回事
到这个数量级的全部更新,肯定会很慢。
第一。你的记录不一定在同一个partition,
第二。不明白为什么那么多人建议你建索引,你建的索引越多,你的更新速度越慢,因为你更新记录的同时,还有更新索引。
第三。你必须知道更新速度慢的瓶颈在哪里。是读写太多,还是内存不够,还是CUP不够快,然后对症下药。
下面介绍两个简单的办法,也许有效:
第一:
把这个100W行的表纵向劈成两个,用外键关系连接,一个装小的,经常改变的数据比如ID,外键,状态值,时间等,另一个装大的,不经常改变的数据,比如很长的字符串,xml,text 等。
这样更新时操作小的这个表,可以大大节约内存和CPU 开销,降低磁盘操作。
坏处就是查询时会慢些。
第二:
把这100W行横向切成很多个表,比如每个月的记录装在一个表里,这样每个表的记录数可能只有几万,查询,更新都会快很多。
坏处是查询,更新都不如原来好写。
④ 数据库写入数据很卡,查询也很慢,懂的高手请来,赏分解决可以追加分
看这种现象,估计是SQL语句写的不够好,SQL要用绑定变量的方式,影响查询性能主要就是执行SQL过多,而且SQL写的不好,无效索引过多,第一步必须优化SQL,之后就是清理历史数据,清理无用索引,大表数据可以用分区表,还有就是tomcat的性能也需要注意,如果太卡,重启一下tomcat试试,是否有效果
⑤ 在写SQL语句的时候最常犯的错误有哪些
.......................
1、多写空格,‘,’等特殊符号
2、因个人思路问题造成的语法错误或者因使用不同的库,因各库间有差异导致的语法错误
3、字段名,表名写错
暂时也就想这些,,,这个出错的可能很多,开始养成良好的习惯就好,,,
⑥ sqlserver2008占内存高,一般是什么原因
sqlserver2008会把整个数据库缓存到内存里面,就是说数据库有多大,就会占内存多个空间,直到把内存占满为止。
这样可以提高数据库速度的,而且一般是没有问题的,如果要限制数据库占用内存控制,要在数据库里面限制,把占用内存改成最大,在SQL server management studio 里面右击服务器,点击属性,选择内存,选择最大内存。
⑦ 有没有简单的SQL语句编写方式《总是写不全导致整个大题做错》
select
列名1,列名2,列名3...
from
表1
关联关系表2on表1与关系表2
....
where
条件1and条件2and条件3...
groupby
列名1,列名2,列名3...
orderby
列名1,列名2,列名3...
这样书写一目了然,这也是公司现在所执行的SQL内部标准
⑧ 网站开发过程中,把sql语句写在前台页面,有什么不好影响
让人家跟容易攻破。
⑨ 写sql语句时遇到的棘手问题
举个例给你,希望对你有所帮助:
sql = "SELECT * FROM tables WHERE TRUE "
wheresql = ""
if y <> 0 then wheresql = wheresql + " AND year=" + y
if m <> 0 then wheresql = wheresql + " AND month=" + y
if d <> 0 then wheresql = wheresql + " AND day=" + y
if h <> -1 then wheresql = wheresql + " AND hour=" + y
rs.Open sql & wheresql, conn, 1, 1
原理是用if语句来控制生成的SQL语句 这样就实现了多种组合