(.NET 3.5 SP1, VS 2008, VB.NET, MSSQL Server 2008)Leistung Verlangsamung bei der Verwendung von Unicode-Sortierungen
Ich bin einen kleinen Web-App des Schreiben des Khmer Unicode und Lao Unicode zu testen. Ich habe eine Tabelle, den Text in Khmer Unicode mit folgenden Struktur speichern:
[t_id] [int] IDENTITY(1,1) NOT NULL
[t_chid] [int] NOT NULL
[t_vn] [int] NOT NULL
[t_v] [nvarchar](max) NOT NULL
ich Linq verwenden kann, um SQL CRUD normalerweise zu tun. Der Text wird auf der Webseite korrekt angezeigt, obwohl ich die Standardsortierung von MSSQL Server 2008 nicht geändert habe.
Wenn die Spalte [t_v] durchsucht wird, dauert das Laden der Seite sehr lange Tatsächlich lädt es jede Zeile dieser Spalte. Es wird niemals mit den "Schlüsselwort" -Kriterien verglichen, die ich für die Suche verwende. Hier ist meine Abfrage für die Suche:
Public Shared Function SearchTestingKhmerTable(ByVal keyword As String) As DataTable
Dim db As New BibleDataClassesDataContext()
Dim query = From b In db.khmer_books _
From ch In db.khmer_chapters _
From v In db.testing_khmers _
Where v.t_v.Contains(keyword) And ch.kh_book_id = b.kh_b_id And v.t_chid = ch.kh_ch_id _
Select b.kh_b_id, b.kh_b_title, ch.kh_ch_id, ch.kh_ch_number, v.t_id, v.t_vn, v.t_v
Dim dtDataTableOne = New DataTable("dtOne")
dtDataTableOne.Columns.Add("bid", GetType(Integer))
dtDataTableOne.Columns.Add("btitle", GetType(String))
dtDataTableOne.Columns.Add("chid", GetType(Integer))
dtDataTableOne.Columns.Add("chn", GetType(Integer))
dtDataTableOne.Columns.Add("vid", GetType(Integer))
dtDataTableOne.Columns.Add("vn", GetType(Integer))
dtDataTableOne.Columns.Add("verse", GetType(String))
For Each r In query
dtDataTableOne.Rows.Add(New Object() {r.kh_b_id, r.kh_b_title, r.kh_ch_id, r.kh_ch_number, r.t_id, r.t_vn, r.t_v})
Next
Return dtDataTableOne
End Function
Bitte beachten Sie, dass ich das exakt gleichen Code und Datenbank-Design mit Lao Unicode verwenden und es funktioniert gut. Ich bekomme die zurückgegebene Abfrage wie erwartet für die Suche.
Ich kann nicht herausfinden, was das Problem mit der Suche nach Abfrage in Khmer-Tabelle.
ich verwendet, um die folgende Linq den Tisch zu kommen:
Dim query = From b In db.khmer_books _
Join ch In db.khmer_chapters On b.kh_b_id Equals ch.kh_book_id _
Join v In db.testing_khmers On ch.kh_ch_id Equals v.t_chid _
Where v.t_v.Contains(keyword) _
Select b.kh_b_id, b.kh_b_title, ch.kh_ch_id, ch.kh_ch_number, v.t_id, v.t_vn, v.t_v
Aber ich habe immer noch alle Zeilen aus dieser Tabelle. Irgendeine Idee ? Danke vielmals.
Navigationseigenschaften? Ich verstehe das nicht. Würde es Ihnen etwas ausmachen, mir einen Code-Block für LINQ Join-Syntax für dieses Problem zu geben. Vielen Dank für die Eingabe. –