none
SQL Server 搜尋速度如何改善 RRS feed

  • 問題

  • 請問該如何改善資料庫搜尋時間

    資料量約 15000 筆,搜尋時間約2~6秒

    麻煩各位了,謝謝

            Dim conSql2000 As SqlCeConnection = Nothing
            Dim dr As SqlServerCe.SqlCeDataReader = Nothing
            Dim comm As SqlCeCommand = Nothing

            Try
               conSql2000 = New SqlCeConnection("Data Source=\SD Card\MobileSqlTest.sdf")
               comm = New SqlCeCommand("SELECT * FROM [123test] WHERE Chinese LIKE '" & TextBox1.Text & "'", conSql2000)
               conSql2000.Open()
             
        dr = comm.ExecuteReader()
                 
                   While (dr.Read)  '這個迴圈占用大部份時間
                
                   End While

     

    2006年7月4日 上午 04:04

解答

  • 因為你特別在 dr.Read() 上作註解,所以我才會認為是程式問題 .

    但你可以檢查你的資料庫有沒有建立適當的索引,有較適當的索引的話可以加快資料搜尋的速度,但會佔用磁碟空間就是了 .

    2006年7月4日 上午 06:03

所有回覆

  • 你的問題似乎不是出在 SQL 上,而是你的程式上 .

    你不妨使用 SqlCeDataAdapter 先取回 Data Table,再來存取你要的資料 .

    2006年7月4日 上午 04:36
  • 您好

    就算是空迴圈 花的時間也是差不多的喔

    您所說的方法我再試試 謝謝您

     

    2006年7月4日 上午 05:50
  • 因為你特別在 dr.Read() 上作註解,所以我才會認為是程式問題 .

    但你可以檢查你的資料庫有沒有建立適當的索引,有較適當的索引的話可以加快資料搜尋的速度,但會佔用磁碟空間就是了 .

    2006年7月4日 上午 06:03
  • 謝謝您建議,速度從6秒提升到只要0.2秒

    速度快了很多,

     

    另外想請問一下

    SQL Server 新增索引時 需選擇資料行

    資料行的選擇,依據是...需查詢欄位嗎??

    另外索引好像可建立很多,在Access中需要設定索引欄位

    這兩者間有什麼不同呢??

    2006年7月4日 上午 06:56
  • SQL Server 的索引可以建立好幾個,除了 Primary Key 是固定索引以外,還可以建立一般性的索引,依據通常是以查詢條件的欄位為索引的設定標的 .

    善用索引可以改善 I/O 和搜尋處理的效率 .

    2006年7月4日 上午 07:01