當前位置:首頁 » 編程語言 » sql查詢500萬條
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql查詢500萬條

發布時間: 2023-02-08 15:54:20

『壹』 sql 查詢結果太多(數萬條),導致運行很慢,甚至內存不足出現問題。有什麼好的方法可以解決這個問題

我試過一下幾個方法:

  1. 嘗試把多餘的進程關閉了,增加內存,這樣速度和查詢條數都會增多

  2. 如果有多個關聯條件,並且可以拆分,建議用UNION ALL進行查詢,效率會有所提高

  3. 如果你只要查詢幾千條看看效果,那樓上的朋友的建議也是可取的

  4. 嘗試下查詢中,使用索引列,速度也會有明顯增加

具體情況具體分析,籠統的我也就知道這些了,我也是新手哇

『貳』 sqlserver里有500多萬條數據,請問怎麼才能通過sqlserver做出如下的透視表呢因為數據太大,excel放不下

百萬級別的就別用EXCEL了,不是EXCEL能解決的

『叄』 如何將sql中500萬條數據通過VS導入到excel表中

Excel承載不了這么大的數據量,即使能導入,你也別想好好操作數據。因為Excel會一次性把全部的數據載入內存,你的電腦開消太大,必定使Excel「未響應」。
還是放棄這個念頭吧。
我不明白,數據在資料庫里好好的,為什麼要一股腦兒導入EXCEL?在資料庫中操作不是很方便嗎?

『肆』 sql查詢語句在查詢分析器里很快,但在.net中很慢。

表裡有500W,那你age大於10的有多少?
如果有10條,理論上來說應該是一樣的
如果是100W條,那你得寫個分頁程序了,查詢分析器里肯定是沒執行完,只是給你顯示了一部分結果,你細看看,是不是查詢分析器還是在運行狀態

『伍』 sql 超多數據怎麼分區好點

這樣的項目少於百萬級別,就別做了,這百萬還只是硬體的上的投入。這幾天經常看到你問類似的問題。說實話,這樣的性能要求,若純靠技術手段實現。俺只能呵呵呵了

『陸』 現在有一sql資料庫,500多萬條記錄,按名稱模糊查詢的時候速度很慢,

在名稱這個欄位上加上索引。這會大大的減少時間,

我昨天坐的一個測試,500萬記錄 查詢需要60秒左右,加索引後只要5秒

如果是第一次查詢的時候,它需要佔用大量的內存,當內存大小不變時,才開始執行,所以需要一定的時間。

『柒』 sql語句查詢上萬條數據。

用NOT IN 是很慢的一種查詢方式。
試試用Join。

select a.*, 'N' as chk from pay a
where a.txn_dt = '20090110'
and txn_sta_cd = '6'
union
select * from (
select b.*, isnull(c.txn_user_id,'N') as chk
from pay b left outer join pay c
on b.txn_user_id = c.txn_user_id
and b.txn_dt = c.txn_dt
and b.txn_sta_cd = '7'
and c.txn_sta_cd = '6'
where b.txn_dt = '20090110' ) d
where d.chk = 'N'
=========================================
如果不行, 試試下面的

select a.*, 'N' as chk
from pay a
where a.txn_dt = '20090110'
and a.txn_sta_cd = '6'
union
select * from (
select b.*, isnull(c.txn_user_id,'N') as chk
from
(select * from pay
where txn_dt='20090110'
and txn_sta_cd = '7') b left outer join
(select * from pay
where txn_dt='20090110'
and txn_sta_cd = '7') c
on b.txn_user_id = c.txn_user_id) d
where d.chk = 'N'

強烈要求補分~~~!!!!!!!

『捌』 SQL 如果 TOP 值 大於表的總數據會不會影響查詢速度

在一百萬的數據量下測試,發現兩種方法的效率相同。
declare @i int
set @i = 1
while @i <= 1000000
begin
insert into MytestTable values(@i,'test')
set @i = @i+1
end

select top 1000001 * from dbo.MytestTable

select * from MytestTable

在我的機器上,查詢都是用了7秒鍾

-----------------------------
你不加order by不就完了?
order by應該不會提高效率的,微軟的機制是這樣的,先把所需要的數據查詢出來,然後再對相應欄位進行排序。所以排序這個過程需要對相應欄位進行遍歷掃描,需要時間的。

--------------------------
select top 200 * from (select * from user where isdel=0 and istop = 1) as U
where level in (2,5,8) and username like '%哈哈%'
order by U.update desc