1. 怎么快速查找某两列重复sql
如果两列数据重复的话,可以通过count方法,找出计算条数大于1的,那么表示此条数据重复:
sql: select district(*) from procts having count(*)>1;
备注:实际上两列重复的话,都是针对某个字段比较有意。
sql:select name,count(*) from usertable group by name having count(*)>1;
以上语句就是查询出名字重复的所有用户,并计算重复的次数。
2. sql2008数据库,九百万条数据,如何快速查询
根据你说的需求:
"可程序中需要查询每行的所有数据"、“查询全部九百万条数据”
-------------------------------
这样的需求跟索引没有关系了(因为已经肯定是走全表扫描的了),要提高效率的办法就是:1、提高硬盘的io速度;2、增加内存以使sql server有更多的缓存。
另外,你程序不要一次性取那么多数据返回,这样会拖死的,建议你考虑变换下处理逻辑(如:分批取回--可以根据id列值进行分批;将数据直接在服务端存成文本再传回本地处理)。
"而是需要根据这些数据逐一进行其他功能的操作,这款程序是不联网的"
--------------------------------
就算这样的话,也不能一次性把9百万数据一次性取回,如果你非要取出来再操作的话,那你得考虑分批去取。或者你把处理逻辑写在存储过程,然后由SQL SERVER本身去完成逻辑处理。总之,不管怎样,你也是得优化你现在的处理逻辑(现有处理逻辑我觉得不合理,效率很低下)。
“真正部署到电力网的服务器上速度会不会提高呢”
------------------------
服务器当然比你本地要快得多啦,硬件配置根本就不同一个级别,但不管怎样,还是建议你参考上面的建议优化你的处理逻辑才行,否则,你系统的效率将很低。
3. SQL数据查询,求快速给代码查询谢谢
1.1:
INSERTINTO读者表(借书证号,姓名,性别,部门,类别)VALUES(1110,王彤,女,21303班,学生);
1.2:
UPDATE书籍表SET作者='张三'WHERE书名='数据库导论';
1.3:
DELETEFROM书籍表WHERE书名='英语';
2.1:
SELECT*FROM读者表;
2.2:
SELECT图书,作者FROM书籍表WHERE书名LIKE'%基础%';
2.3:
SELECT姓名,性别,借书证号FROM读者表WHERE部门='21303班'ORDERBY借书证号DESC;
2.4:
SELECTCOUNT(书名)FROM书籍表;
2.5:
SELECTB.姓名,B.部门,C.书名FROM借阅表A
LEFTJOIN读者表BONA.借书证号=B.借书证号
LEFTJOIN书籍表CONA.图书编号=C.图书编号;
4. 在SQL中如何快速查询某条记录在所有表中是否存在
DECLARE @Name nvarchar(255),@Sql nvarchar(4000)
DECLARE TName CURSOR FOR
SELECT [name] FROM sysobjects WHERE xtype = 'U'
OPEN TName
FETCH NEXT FROM TName
INTO @Name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Sql='SELECT * FROM '+@name + 'WHERE XXX(你的数据条件)'
EXEC(@Sql)
FETCH NEXT FROM TName INTO @name
END
CLOSE TName
DEALLOCATE TName
5. 如何使用sql语句快速查询一个oracle数据库中有哪些视图使用了dblink
dblink的特征是@,也就是说出现这个就是dblink。
那么可以selectowner,view_namefromdba_viewswheretext_vc like'%@%'
以上语句只能查询建立语句在4000字符以内的,也就是说,视图建立语句的长度要是大于4000字符(计算空格),那么即使带有@符号也有可能查不出来。
如果想完整查出来,那么就需要查询long格式的text字段,long字段比较特别,并不能之家查询,具体的查询方式请参考:long字段查询
当然,这样查可能很慢,要是你的dnlink代码只有一个或者两个,那么可以考虑都写上去,这样能快一些。
6. 怎样用SQL语句查询一个数据库中的所有表
1、打开Microsoft SQL Server 2012,选中需要查询所有表的数据库。
7. 请问SQL如何实现批量查询
好像解决办法有点愚蠢,但是确实可以这么用
先把那1000多个号码导出成文本
然后在sqlserver里建一张表
create
table
shenfenzheng
(shengfenzheng_id
varchar(18));
然后把导出的文本用UE编辑成
insert
into
shenfenzheng
values
('xxxxxxxxxxxxxxxxxx');
insert
into
shenfenzheng
values
('yyyyyyyyyyyyyyyyyy');
.
.
.
共1000条
然后在sqlserver里执行上述语句,记得后边一定要带分号
然后写个查询
select
*
from
工资表
where
身份证号
in(select
shenfenzheng_id
from
shenfenzheng);
得到的就是你想要的结果
---------补充---------
你所说的用户是指客户端程序的用户,和数据库用户关系应该不大,各个客户端应该在程序里都有连接数据库的文件,也就是实际操作的用户连接数据库时用的都是数据库同一个用户,所以不用在每个用户下都建临时表
8. 如何提高sql数据库的查询速度
这是一个典型问题,在网上搜一下就行了。给你搜了一个粘过来看看
1.索引优化
建索引的选择必须结合SQL查询、修改、删除语句的需要,一般的说法是在WHERE里经常出现的字段建索引。如果在WHERE经常是几个字段一起出现而且是用AND连接的,那就应该建这几个字段一起的联合索引,而且次序也需要考虑,一般是最常出现的放前面,重复率低的放前面。
SQL Server提供了一种简化并自动维护数据库的工具。这个称之为数据库维护计划向导(Database Maintenance Plan Wizard ,DMPW)的工具也包括了对索引的优化。如果你运行这个向导,你会看到关于数据库中关于索引的统计量,这些统计量作为日志工作并定时更新,这样就减轻了手工重建索引或者DBCC INDEXDEFRAG所带来的工作量。如果你不想自动定期刷新索引统计量,你还可以在DMPW中选择重新组织数据和数据页,这将停止旧有索引并按特定的填充因子重建索引。
2.
改善硬件(双CPU,Raid 5,增加内存)
tempdb这个临时数据库,它对性能的影响较大。tempdb和其他数据库一样可以增大,可以缩小。当数据文件需要增长的时候,通常不能保持剩余部分的连续性。这时文件就会产生碎片,这种碎片会造成性能下降。这种碎片属于外来性碎片。要阻止在tempdb中产生外来性碎片,必须保证有足够的硬盘空间。一般将tempdb的容量放到平均使用容量。而你也应该允许tempdb自动增长,比如你有个一个超大的join操作,它建立了一个超过tempdb容量的时候,该查询将失败。你还要设置一个合理的单位增长量。因为如果你设得太小,将会产生许多外来性碎片,反而会占用更多资源。sqlserver调优最有效的做法之一,就是把争夺资源的操作独立出去。tempdb就是一个需要独立出去的部分而tempdb和其他系统库一样是公用的,是存取最可能频繁的库,所有处理临时表、子查询、GROUP BY、排序、DISTINCT、连接等等。它最适合放到一个具有快速读写能力的设备上。比如RAID0卷或RAID0+1卷上。
查询语句一定要使用存储过程;
3、查询尽量使用TOP子句
4.将表按一定的约束分成子表,(如按分类)创建约束,在用Like 时,先用分类 and like , 应该可能解决问题. 而且效果立秆见影!(你要确定SQL会认识你建的分区视图).我一个表有上百万的记录(700兆),用分区视图后,查询速度基本跟10万行一样.
如果还是太慢,还可以考滤分布式分区视图!这总可以解决问题了吧!
关键在于你能否把大表按某种约束分解成子表.
9. SQL 批量查询如何对应上数据
你可以查询一下外连接的用法,举个例子:
A 表 和 B 表 都有学生学号信息,B表比A表少,但要显示A表所有的内容:
select * from test_a a,test_b b
where a.seq_no=b.seq_no(+);
这样就表示即使在B表里面没有的记录,也显示A表的数据,这里的 test_a表和test_b表就是前面说的举例表,表名可以随意更改。
10. 通过sql语句快速查询数据库共有多少张表
select*fromdbo.sysobjectswherextype='U'
上面的sql语句,将展示当前DB下所有的数据表