none
如何快速往SQL Server中保存和读取 大量数据? RRS feed

  • 问题

  • 采用常规的ADO.NET方法,数据保存和读取时采用下面的代码:

    SqlConnection databaseConnection = new SqlConnnection();
                string SQLStatement = String.Format(****);//设置连接用的字符存串
    			SqlCommand command = new SqlCommand(SQLStatement, databaseConnection);
    			command.CommandType = CommandType.Text;
    			try {
    				databaseConnection.Open();
    				int NumRows = command.ExecuteNonQuery();
    				if (NumRows == 0) {
    					MessageBox.Show("数据记录为空,请检查!");
    				}
    			} catch (Exception e) {
    				MessageBox.Show(e.Message);
    			} finally {
    				databaseConnection.Close();
    			}
    但这个方法对数据比较少时还蛮好使,但当数据量表变为千万条记录时,即使换成存储过程来保存,还是实在太卡了。所以我想请教下,有没有一次能大量写入和读取大量数据的方法?


    2015年11月7日 6:55

答案

  • Hi waterharbin,

    当数据表中数据量非常大的时候,插入一条新数据会很慢(不论是通过 ADO.Net 或是 Sql Management Studio),这种情况下应该要考虑对现有的数据表进行拆分。根据实际的业务情况选择横向或是纵向拆分,同时还要更新代码中的 DAL 以适应分表逻辑。

    通常情况下,如果数据是带有 TimeStamp 列,那么可以选择按年/月/天进行拆分,以达到单表读/写性能最优。


    Please mark this as answer if it helps with this issue!

    2015年11月7日 13:14