查询条件where 后面的条件越多越好 还是有一个和有N个一样
数据库中已经有多个表超多了50W记录 有的已经逼近百万
目前依然在使用SQL SVERVER 2000
各位觉得用不用转成oracle
17 个解决方案
#1
百萬?sql2000足夠了......
#2
where 后面的条件越多越好,但查询时间可能会长一些。如果各表都建立了必要的主建或索引,情况会好一些。
数据库中已经有多个表超多了50W记录 有的已经逼近百万,SQL SERVER 2000能处理。
但我建议转oracle是个不错的选择。
数据库中已经有多个表超多了50W记录 有的已经逼近百万,SQL SERVER 2000能处理。
但我建议转oracle是个不错的选择。
#3
sql2000还可以用
我们的服务器用的也是SQL2000 数据已经快200W了 有50多个表
我们的服务器用的也是SQL2000 数据已经快200W了 有50多个表
#4
我們的系統,4個db,總共table大概600個,store procedure大概500支。
另外有少量的view,trigger等。
使用2臺機子cluster server
操作系統2003
機子配置 Hewlett Packard HP server rx2620 Itanium 2
1.30GHz, 9.98GB of RAM.
Intel Itanium processor family
p.s: 弱弱的想,用來玩游戲會不會很爽?
另外有少量的view,trigger等。
使用2臺機子cluster server
操作系統2003
機子配置 Hewlett Packard HP server rx2620 Itanium 2
1.30GHz, 9.98GB of RAM.
Intel Itanium processor family
p.s: 弱弱的想,用來玩游戲會不會很爽?
#5
1、条件多,查询的速度肯定慢一些,适当地建立索引有利用提高查询的速度
2、对于几百万级表,mssql 完全有能力运行
3、由mssql数据库改为oracle数据库,程序要重新写一遍,数据库的脚本也要重新写一遍,工作量比较大
2、对于几百万级表,mssql 完全有能力运行
3、由mssql数据库改为oracle数据库,程序要重新写一遍,数据库的脚本也要重新写一遍,工作量比较大
#6
关键是合理的使用索引
#7
几个tb级的数据库,MSSQL还是能够处理的
再大就困难了
你这个应该没问题
再大就困难了
你这个应该没问题
#8
条件若能有效地利用索引,这种矛盾能够得以缓解
所以没有绝对的多好还是少好
几个50W的记录sqlserver处理不了,微软还出什么2005?微软的数据库早歇菜了
所以没有绝对的多好还是少好
几个50W的记录sqlserver处理不了,微软还出什么2005?微软的数据库早歇菜了
#9
少了一句:
条件少扫描的时间少,但数据集可能大,条件多反之,
条件少扫描的时间少,但数据集可能大,条件多反之,
#10
如果记录中有两个都是 唯一标识的
那是都where and 还是只写一个比较快
那是都where and 还是只写一个比较快
#11
理论上,条件越多,速度一定会越慢些呀。
#12
Where后条件的先后顺序也会影响到SQL语句的执行效率
#13
如果记录中有两个都是 唯一标识的
那是都where and 还是只写一个比较快
----一个快
那是都where and 还是只写一个比较快
----一个快
#14
不用转换,sql足够用,
对于条件,要尽量的优化sql语句,建立合适的索引,
少用临时表,减少表连接,多用存储过程等等。
qq307366759 注明csdn
对于条件,要尽量的优化sql语句,建立合适的索引,
少用临时表,减少表连接,多用存储过程等等。
qq307366759 注明csdn
#15
没有查询条件越多就越慢, 或是查询条件越多就越快的说法
具体的要看具体应用。
比如tb 50w记录. id idneity 聚集索引
要求:查出最近5条,近三天内 username 含 aa的记录
那么写法是
select top 5... where datediff(dd,datefield,getdate())<=3 and username like '%aa%' order by datefield
说条件越多就越慢的朋友高兴了,确实越多越慢.
如果定期对数据做分析,可以知道三天前的数据的id最小都是大于470000的,那么
where id>470000 and datediff(dd,datefield,getdate())<=3 and username like '%aa%' order by datefield
说条件赵多越快的朋友就又高兴了,确实加了这个where id>.. 之后快多了。
但是去掉 and username like .. 会更快
说以说,这个不能一概而论
具体的要看具体应用。
比如tb 50w记录. id idneity 聚集索引
要求:查出最近5条,近三天内 username 含 aa的记录
那么写法是
select top 5... where datediff(dd,datefield,getdate())<=3 and username like '%aa%' order by datefield
说条件越多就越慢的朋友高兴了,确实越多越慢.
如果定期对数据做分析,可以知道三天前的数据的id最小都是大于470000的,那么
where id>470000 and datediff(dd,datefield,getdate())<=3 and username like '%aa%' order by datefield
说条件赵多越快的朋友就又高兴了,确实加了这个where id>.. 之后快多了。
但是去掉 and username like .. 会更快
说以说,这个不能一概而论
#16
and 可能会块,or可能会慢
#17
存储过程也不是万能的,也许会更慢,存储过程的优化计划是根据过程的参数设定的,对有的数据可能快有的可能就会慢了
#1
百萬?sql2000足夠了......
#2
where 后面的条件越多越好,但查询时间可能会长一些。如果各表都建立了必要的主建或索引,情况会好一些。
数据库中已经有多个表超多了50W记录 有的已经逼近百万,SQL SERVER 2000能处理。
但我建议转oracle是个不错的选择。
数据库中已经有多个表超多了50W记录 有的已经逼近百万,SQL SERVER 2000能处理。
但我建议转oracle是个不错的选择。
#3
sql2000还可以用
我们的服务器用的也是SQL2000 数据已经快200W了 有50多个表
我们的服务器用的也是SQL2000 数据已经快200W了 有50多个表
#4
我們的系統,4個db,總共table大概600個,store procedure大概500支。
另外有少量的view,trigger等。
使用2臺機子cluster server
操作系統2003
機子配置 Hewlett Packard HP server rx2620 Itanium 2
1.30GHz, 9.98GB of RAM.
Intel Itanium processor family
p.s: 弱弱的想,用來玩游戲會不會很爽?
另外有少量的view,trigger等。
使用2臺機子cluster server
操作系統2003
機子配置 Hewlett Packard HP server rx2620 Itanium 2
1.30GHz, 9.98GB of RAM.
Intel Itanium processor family
p.s: 弱弱的想,用來玩游戲會不會很爽?
#5
1、条件多,查询的速度肯定慢一些,适当地建立索引有利用提高查询的速度
2、对于几百万级表,mssql 完全有能力运行
3、由mssql数据库改为oracle数据库,程序要重新写一遍,数据库的脚本也要重新写一遍,工作量比较大
2、对于几百万级表,mssql 完全有能力运行
3、由mssql数据库改为oracle数据库,程序要重新写一遍,数据库的脚本也要重新写一遍,工作量比较大
#6
关键是合理的使用索引
#7
几个tb级的数据库,MSSQL还是能够处理的
再大就困难了
你这个应该没问题
再大就困难了
你这个应该没问题
#8
条件若能有效地利用索引,这种矛盾能够得以缓解
所以没有绝对的多好还是少好
几个50W的记录sqlserver处理不了,微软还出什么2005?微软的数据库早歇菜了
所以没有绝对的多好还是少好
几个50W的记录sqlserver处理不了,微软还出什么2005?微软的数据库早歇菜了
#9
少了一句:
条件少扫描的时间少,但数据集可能大,条件多反之,
条件少扫描的时间少,但数据集可能大,条件多反之,
#10
如果记录中有两个都是 唯一标识的
那是都where and 还是只写一个比较快
那是都where and 还是只写一个比较快
#11
理论上,条件越多,速度一定会越慢些呀。
#12
Where后条件的先后顺序也会影响到SQL语句的执行效率
#13
如果记录中有两个都是 唯一标识的
那是都where and 还是只写一个比较快
----一个快
那是都where and 还是只写一个比较快
----一个快
#14
不用转换,sql足够用,
对于条件,要尽量的优化sql语句,建立合适的索引,
少用临时表,减少表连接,多用存储过程等等。
qq307366759 注明csdn
对于条件,要尽量的优化sql语句,建立合适的索引,
少用临时表,减少表连接,多用存储过程等等。
qq307366759 注明csdn
#15
没有查询条件越多就越慢, 或是查询条件越多就越快的说法
具体的要看具体应用。
比如tb 50w记录. id idneity 聚集索引
要求:查出最近5条,近三天内 username 含 aa的记录
那么写法是
select top 5... where datediff(dd,datefield,getdate())<=3 and username like '%aa%' order by datefield
说条件越多就越慢的朋友高兴了,确实越多越慢.
如果定期对数据做分析,可以知道三天前的数据的id最小都是大于470000的,那么
where id>470000 and datediff(dd,datefield,getdate())<=3 and username like '%aa%' order by datefield
说条件赵多越快的朋友就又高兴了,确实加了这个where id>.. 之后快多了。
但是去掉 and username like .. 会更快
说以说,这个不能一概而论
具体的要看具体应用。
比如tb 50w记录. id idneity 聚集索引
要求:查出最近5条,近三天内 username 含 aa的记录
那么写法是
select top 5... where datediff(dd,datefield,getdate())<=3 and username like '%aa%' order by datefield
说条件越多就越慢的朋友高兴了,确实越多越慢.
如果定期对数据做分析,可以知道三天前的数据的id最小都是大于470000的,那么
where id>470000 and datediff(dd,datefield,getdate())<=3 and username like '%aa%' order by datefield
说条件赵多越快的朋友就又高兴了,确实加了这个where id>.. 之后快多了。
但是去掉 and username like .. 会更快
说以说,这个不能一概而论
#16
and 可能会块,or可能会慢
#17
存储过程也不是万能的,也许会更慢,存储过程的优化计划是根据过程的参数设定的,对有的数据可能快有的可能就会慢了