假設我有一個樣本,其中有500萬個數據對象作爲行存儲在SQL Server中。如果我需要在數據上運行一些統計數據,最好是爲每個樣本或一個巨型表格添加一個表格,我將通過樣本ID選擇並運行統計數據?在SQL Server中查詢大數據集的統計信息?
最終可能會有數百甚至數千個樣本 - 這看起來像一個巨大的表格。
但我不是一個SQL Server專家,所以我不能說一個人是否會比其他的快...
或者,也許有更好的方式來處理如此大的數據集?我希望能夠使用SQL CLR與C#來完成我的繁重工作...
假設我有一個樣本,其中有500萬個數據對象作爲行存儲在SQL Server中。如果我需要在數據上運行一些統計數據,最好是爲每個樣本或一個巨型表格添加一個表格,我將通過樣本ID選擇並運行統計數據?在SQL Server中查詢大數據集的統計信息?
最終可能會有數百甚至數千個樣本 - 這看起來像一個巨大的表格。
但我不是一個SQL Server專家,所以我不能說一個人是否會比其他的快...
或者,也許有更好的方式來處理如此大的數據集?我希望能夠使用SQL CLR與C#來完成我的繁重工作...
如果您需要處理如此龐大的數據集,我的直覺告訴我T-SQL和工作集將會更快比在SQL-CLR和RBAR(逐行排序)方法中可以做到的任何事情...處理大量數據,總結和選擇,這就是T-SQL總是被創造出來的以及它是什麼擅長。
500萬行並不是真的很多數據 - 這是一個很好的大小數據集。但是,如果你有適當的指數,例如您在JOIN
條件中使用的列,在您的WHERE
子句和ORDER BY
子句中,您應該沒問題。
如果您需要更多,更詳細的建議 - 嘗試發佈你的表結構,解釋你將如何查詢該表(你用什麼標準WHERE
和ORDER BY
),我們應該能夠提供一些更多的反饋。
我可以使用T-SQL執行我需要的自定義統計嗎?我從來沒有用過它,所以不知道。任何建議的教程鏈接? 我是一個C#人,所以這就是爲什麼傾向於CLR :)我知道該怎麼做...... T-SQL是一個未知數。 – Nicros
@Nicros:取決於 - 你可能會努力的是嘗試減少你處理的行數(通過使用T-SQL),然後在這個較小的數據集上應用自定義統計信息。 T-SQL不完全是一個統計系統.... –
謝謝marc。對於某些統計數據,我可能會將數據分解爲更小的塊,但對於某些統計數據,我需要所有行。我很好奇T-SQL和CLR的性能......我在學習曲線:) – Nicros