sql百萬條數據
『壹』 請大神看看這段sql哪裡有問題,查詢幾百萬條數據將近十幾分鍾,速度特別慢,還請大神指導。
百萬的數據量並不是很大,看樣子應該是某一步「卡」了一下,看看執行計劃,在哪一步卡住了,然後才好對症下葯。
至於語句本身,我沒看出什麼,就是很普通的聯合查詢,不過個人覺得,可以考慮把三個條件的先後順序,畢竟有時可能出現因為過濾條件的原因導致某張大表被遍歷兩遍(當然最終要根據執行計劃來確定,空口白話這么說是沒用的)
最後提一個小建議,大概沒什麼用,我看你的查詢欄位都是xxid,是不是可以考慮外鍵,或者簇(這是oracle的),我不知道其他資料庫有沒有,僅僅是一點建議,行不行我就不知道了。
『貳』 SQL語句寫法:如何一次性從百萬條記錄中找到希望的數據
首先在zd1和zd2上建立索引
Select [texts] from [tables] where (zd1<23456 and zd2>23456) or (zd1< 13567 and zd2>13567) or (zd1<67543 and zd2>67543) ......
上面這樣只能在輸出的時候按順序對比排序
Select [texts] from [tables] where (zd1<23456 and zd2>23456)
union
Select [texts] from [tables] where (zd1<13567 and zd2>13567 )
union
Select [texts] from [tables] where (zd1<67543 and zd2>67543)
這樣可以直接按順序輸出.但不知道效率怎樣..
『叄』 sql對100萬條數據的查詢和統計(主要是統計)效率提升
SELECT count(id)
FROM TBL_POS_SHOP s,
TBL_POS_POS p,
TBL_POS_CUSTOMER c,
TBL_POS_ORDER o,
TBL_POS_CARDINFO cd
WHERE o.POS_CATI = p.POS_CATI
and o.CUSTOMER_ID = c.ID
and o.SHOP_ID = s.ID
and o.CARDINFO_ID = cd.ID
『肆』 sql2008資料庫,九百萬條數據,如何快速查詢
根據你說的需求:
"可程序中需要查詢每行的所有數據"、「查詢全部九百萬條數據」
-------------------------------
這樣的需求跟索引沒有關系了(因為已經肯定是走全表掃描的了),要提高效率的辦法就是:1、提高硬碟的io速度;2、增加內存以使sql server有更多的緩存。
另外,你程序不要一次性取那麼多數據返回,這樣會拖死的,建議你考慮變換下處理邏輯(如:分批取回--可以根據id列值進行分批;將數據直接在服務端存成文本再傳回本地處理)。
"而是需要根據這些數據逐一進行其他功能的操作,這款程序是不聯網的"
--------------------------------
就算這樣的話,也不能一次性把9百萬數據一次性取回,如果你非要取出來再操作的話,那你得考慮分批去取。或者你把處理邏輯寫在存儲過程,然後由SQL SERVER本身去完成邏輯處理。總之,不管怎樣,你也是得優化你現在的處理邏輯(現有處理邏輯我覺得不合理,效率很低下)。
「真正部署到電力網的伺服器上速度會不會提高呢」
------------------------
伺服器當然比你本地要快得多啦,硬體配置根本就不同一個級別,但不管怎樣,還是建議你參考上面的建議優化你的處理邏輯才行,否則,你系統的效率將很低。
『伍』 SQL資料庫 用存儲過程插入100W條數據
看看別人的文章:http://blog.csdn.net/zjcxc/archive/2006/08/20/1099215.aspx 最近在論壇看到有人問,如何快速生成100萬不重復的8位編號,對於這個問題,有幾點是需要注意的:1. 如何生成8位隨機數,生成的數越隨機,重復的可能性當然越小2. 控制不重復3. 考慮性能針對這個問題,我寫了如下的示例來解決,希望能為有這類需求的人提供指導 生成100萬條8位不重復數據的示例USE tempdbGO -- 創建測試表CREATE TABLE tb(id char(8)) -- 創建用於自動過濾重復值的唯一索引CREATE UNIQUE INDEX IX_tb ON tb(id)WITH IGNORE_DUP_KEY GO -- 測試數據插入的處理時間, 記錄開始處理的時間點DECLARE @dt datetimeSET @dt = GETDATE() -- 插入隨機數據SET NOCOUNT ONDECLARE @row intSET @row = 1000000 -- 設置總記錄數WHILE @row >0BEGIN -- 顯示提示信息, 表示還需要插入多行數據 RAISERROR('need %d rows', 10, 1, @row) WITH NOWAIT -- 插入隨機的位編碼數據 SET ROWCOUNT @row INSERT tb SELECT id = RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 8) FROM syscolumns c1, syscolumns c2 SET @row = @row - @@ROWCOUNTEND -- 顯示插入數據使用的時間SELECT BeginDate = @dt, EndDate = GETDATE(), Second = DATEDIFF(Second, @dt, GETDATE()),GO -- 顯示最終的結果記錄是否正確SELECT COUNT(*) FROM tbGO -- 刪除測試DROP TABLE tb 本文來自CSDN博客,轉載請標明出處: http://blog.csdn.net/zjcxc/archive/2006/08/20/1099215.aspx
『陸』 PL/SQL工具怎麼快速將數百萬條.sql文件數據插入ORACLE資料庫
在確定你的.sql文件沒有錯誤的情況下,在pl/sql命令行模式下使用:"@d:xx.sql" 就可以直接執行。其中路徑名稱與文件名視你的情況而定(不帶"")。操作如圖:
還可以控制 每次插入 1000條數據,commit,循環繼續插入,保證表空間大小
『柒』 查詢百萬條信息第SQL資料庫伺服器需要什麼配置
能同時超過100+人同時查詢數據的伺服器,資料庫信息超過百萬條,建議您使用單路四核機架式伺服器
採用英特爾Nahalem架構的四核至強®處理器,英特爾S3420伺服器晶元組、2GB DDR3 1333MHz高速大容量內存、250GB硬碟、4U機架式設計,是成長型企業信息化建設極具性價比的普及型伺服器解決方案。
處理器:Xeon X3430, 內存:2G DDR3, 硬碟:SATA2 250G, 機構:4U機架式
應用范圍:辦公OA伺服器,ERP伺服器,資料庫伺服器,財務伺服器,郵件伺服器,打..
產品特點:採用英特爾Nahalem架構的四核至強®處理器,英特爾S3420伺服器晶元組、2GB DDR3 1333MHz高速大容量內存、250GB硬碟、4U機架式設計,是成長型企業信息化建設極具性價比的普及型伺服器解決方案。
產品型號:I14564312S
產品類型:單路四核機架式伺服器
處 理 器:Xeon X3430
內 存:2G DDR3
硬 盤:SATA2 250G
機 構:4U機架式
價 格:¥5699
銀牌服務
重慶五年免費上門服務,全國三年免費上門服務,關鍵部件三年以上免費質保。
給你推薦的是國產伺服器品牌正睿的產品,他們的產品性價比很高,售後也很完善,3年免費質保,3年免費上門服務,在業界口碑很不錯。
『捌』 sql百萬條數據中篩選重復條目
SELECTB,D,E,COUNT(1)FROMsheet1WITH(NOLOCK)GROUPBYB,D,EHAVINGCOUNT(1)>1;
--or
SELECTB,D,E,COUNT(1)FROMsheet1GROUPBYB,D,EHAVINGCOUNT(1)>1;