易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

SQL语句

1. 说明:复制表(只复制结构,源表名:a,新表名:b)
SQL: select * into b from a where 1<>1;
        2. 说明:拷贝表(拷贝数据,源表名:a,目标表名:b)
SQL: insert into b(a, b, c) select d, e, f from b;
        3. 说明:显示文章、提交人和最后回复时间
SQL: select a.title, a.username, b.adddate
     from table a,(
          select max(adddate) adddate
          from table where table.title=a.title) b  
        4. 说明:外连接查询(表名1:a,表名2:b)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f
     from a LEFT OUT JOIN b ON a.a = b.c;  
        5. 说明:日程安排提前五分钟提醒
SQL: select *
     from 日程安排
     where datediff(’’minute’&r ......

SQL对程序性能的影响


【先思考一个问题:聋子和瞎子在一起会有什么结果?】
昨天写程序,有个小模块是通过分析数十万条记录,与异构的数据表进行比对,找出符合条件的信息。
在第一条查询中,需要查询所有记录的一个字段,并提取该字段中的第5至第10个字符串,要与异构数据表比较的就是这个字串。在最初的版本中,对于性能并没有做更多的考虑,先从数据表中获取所有的记录组成的数据集,作为目标数据,再从异构数据表中获取数据集作为比对数据,然后在程序中经过至少两次遍历,筛选出想要的结果。在这个版本中,效率很低。比对数据基本上固定,千把条的样子,目标数据很多,而且会越来越多。但性能的瓶颈并不是出现在程序中多次的遍历,这些都在内存中进行,这点数据量和算法,对于目前的服务器来说真的是小菜一碟。经测试,虽然只有几十万行的记录,查询时间却需要5秒以上。
我原来的思路是,因为担心SQL的性能,把从字段中截取字符串的计算由SQL移至程序中进行,但实践证明,对于返回大量记录的SQL,其效率反而更低了。于是,改变思路,还是利用SQL进行筛选,并尽量减少数据量,有了类似下面这一行简单的查询:
select distinct substring([prodcode],5,10) pcode from [detail] order by ......

SQL查询 重复记录

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select   peopleId  from   people  group  by   peopleId  having  count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId  in (select   peopleId  from people  group  by   peopleId   having  count(peopleId) > 1)
and rowid not in (select min(rowid) from   people  group by peopleId  having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group ......

sql 查询重复记录2


========第一篇=========
在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句:
select data_guid from adam_entity_datas a where a.rowid > (select min(b.rowid) from adam_entity_datas b where b.data_guid = a.data_guid)
如果表中有大量数据,但是重复数据比较少,那么可以用下面的语句提高效率
select data_guid from adam_entity_datas where data_guid in (select data_guid from adam_entity_datas group by data_guid having count(*) > 1)
此方法查询出所有重复记录了,也就是说,只要是重复的就选出来,下面的语句也许更高效
select data_guid from adam_entity_datas where rowid in (select rid from (select rowid rid,row_number()over(partition by data_guid order by rowid) m from adam_entity_datas) where m <> 1)
目前只知道这三种比较有效的方法。
第一种方法比较好理解,但是最慢,第二种方法最快,但是选出来的记录是所有重复的记录,而不是一个重复记录的列表,第三种方法,我认为最好。
========第二篇=========
select usercode,count(*)       f ......

sql 2000和2005 复制数据 发布与订阅

2000发布与订阅
预备工作
1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
--管理工具
--计算机管理
--用户和组
--右键用户
--新建用户  
--建立一个隶属于administrator组的登陆windows的用户(SynUser)
2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:
我的电脑--D:\ 新建一个目录,名为: PUB
--右键这个新建的目录
--属性--共享
--选择"共享该文件夹"
--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户(SynUser) 具有对该文件夹的所有权限
--确定
3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)
开始--程序--管理工具--服务
--右键SQLSERVERAGENT
--属性--登陆--选择"此账户"
--输入或者选择第一步中创建的windows登录用户名(SynUser)
--"密码"中输入该用户的密码
4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)
企业管理器
--右键SQL实例--属性
--安全性--身份验证
--选择"SQL Server 和 Windows"
--确定
5.在发布服务器和订阅服务器上互相注册
......

SQL SERVER

sql server分布式事务解决方案
适用环境
操作系统:windows 2003
数据库:sql server 2000/sql server 2005
使用链接服务器进行远程数据库访问的情况
一、  问题现象
在执行分布式事务时,在sql server 2005下收到如下错误:
消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行
无法执行该操作,因为链接服务器 "xxxxx" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。
在sql server 2000下收到如下错误:
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
 
二、  解决方案
1.        双方启动MSDTC服务
MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。
2.        打开双方135端口
MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用 ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [577] [578] [579] [580] 581 [582] [583] [584] [585] [586]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号