在论坛中出现的各种疑难问题:模糊匹配问题
关于2个表模糊搜索匹配的问题,现已找到较快的解决方法,速度提升到每秒5条记录左右,而且不占CPU,不占内存,方法如下: ------------------------------------------------------------------------- 环境: 有2个表, 表1:MainTable (现有记录数在10万条
关于2个表模糊搜索匹配的问题,现已找到较快的解决方法,速度提升到每秒5条记录左右,而且不占CPU,不占内存,方法如下:
-------------------------------------------------------------------------
环境:
有2个表,
表1:MainTable (现有记录数在10万条左右)
字段:
id bigint自动编号
Title nvarchar(30)
SubId nvarchar(max)
表MainTable:
Id Title SubId
1 A 0
2 B 0
3 C 0
4 D 0
5 E 0
6 F 0
表2:SubTable (现有记录数在300万条左右)
字段:
id bigint自动编号
Description nvarchar(100)
Fl int '默认值为0,当进行模糊匹配后,值改为1
表SubTable:
Id Description Fl
1 ABC 0
2 AB 0
3 CD 0
4 EA 0
二、需要实现的结果为:
表MainTable:
Id Title SubId
1 A 0,1,2,4
2 B 0,1,2
3 C 0,1,3
4 D 0,3
5 E 0,4
6 F Null
第6条记录由于没有匹配的值,所以改为Null
-------------------------------------------------------------------------
1、由于记录数太多,通过内部存储搜索速度太慢,中途不能暂停,平均每分钟才能处理5条记录左右;
2、原先通过外部循环的方法处理,速度1秒1条左右,会比方法1速度快,但非常占CPU;
现在的办法:
用VBS编写,定义2个数组,IDArray()和DescriptionArray()分别用于存储在SubTable表检索到的ID集和Description集
1、MainTable用循环的方式,按字段Title升序的方式得取Title字段的值,
先取得第一条记录的Title字段的第一个字符,根据这个字符模糊匹配SubTable的Description字段,并将检索到的结果存放在数组IDArray和DescriptionArray()中。
2、通过循环方式,将MainTable表的当前记录的Title字段的完整值与DescriptionArray()的值进行匹配处理,并update。
3、获取MainTable的下一条记录,判断该条记录Title字段的第一个字符是否与上一条记录的Title的第一个字符相同,如果相同,则从第2步开始处理;如果不同,则从第1步开始处理。
------------------------------------------------------------------------------
这种方法减少了每次去SubTable模糊搜索的次数,如果Title字段的第一个字符相同的记录非常多的情况下,速度还可能会提高很多。
总结一下,这个问题的解决不是通过sql server,而是在vbs,通过运用数据本身的特性,也就是:Title字段的第一个字符相同的记录非常多,减少了重复的劳动,少做了很多的无用功,最后,大幅提升性能。
真的是好办法,其实,从这个例子中可以看出,优化,更重要的是强调思维,而不简单的是某个技术,注重细节,仔细分析,楼主就解决了这个优化问题。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Anda boleh mengaburkan foto dalam Kamera Yitian, jadi bagaimana untuk mengaburkan foto? Pengguna boleh mengklik Edit untuk memilih foto, kemudian klik Kesan dan pilih Kabur untuk mengaburkan foto. Pengenalan kepada cara mengaburkan foto ini boleh memberitahu anda kandungan tertentu Berikut ialah pengenalan terperinci, datang dan lihat! Tutorial penggunaan Kamera Yitian Cara mengaburkan foto dengan Kamera Yitian Jawapan: Pergi ke Edit-Special Effects-Blur. 2. Kemudian klik pada gambar dan klik butang edit. 3. Kemudian klik butang kesan khas di bawah. 4. Anda boleh mencari fungsi blur di bawah. 5. Kemudian pilih pembesaran kabur.

Pengurusan kebenaran forum Discuz: Baca panduan tetapan kebenaran Dalam pengurusan forum Discuz, tetapan kebenaran adalah bahagian yang penting. Antaranya, penetapan kebenaran membaca amat penting, kerana ia menentukan skop kandungan yang boleh dilihat oleh pengguna yang berbeza dalam forum. Artikel ini akan memperkenalkan secara terperinci tetapan kebenaran membaca forum Discuz dan cara mengkonfigurasinya secara fleksibel untuk keperluan yang berbeza. 1. Konsep asas kebenaran membaca Dalam forum Discuz, kebenaran membaca terutamanya termasuk konsep berikut yang perlu difahami: Keizinan membaca lalai: Lalai selepas pendaftaran pengguna baharu

Masalah penilaian kesan pengelompokan dalam algoritma pengelompokan memerlukan contoh kod khusus Pengelompokan ialah kaedah pembelajaran tanpa pengawasan yang mengelompokkan sampel yang serupa ke dalam satu kategori dengan mengelompokkan data. Dalam algoritma pengelompokan, cara menilai kesan pengelompokan adalah isu penting. Artikel ini akan memperkenalkan beberapa penunjuk penilaian kesan pengelompokan yang biasa digunakan dan memberikan contoh kod yang sepadan. 1. Indeks penilaian kesan pengelompokan Pekali Siluet Pekali siluet menilai kesan pengelompokan dengan mengira kehampiran sampel dan tahap pemisahan daripada kelompok lain.

Kadang-kadang kertas dinding menjadi kabur apabila menggunakan Win11 Saya tidak tahu apa yang berlaku. Sebenarnya, kita boleh menyelesaikannya dengan mengubah suai pendaftaran atau keserasian aplikasi. Penyelesaian kabur kertas dinding Win11: 1. Kabur desktop 1. Jika desktop kabur, anda boleh klik kanan menu mula bawah dan buka "Run" 2. Kemudian masukkan "regedit" dan tekan Enter untuk membuka pendaftaran. 3. Selepas dibuka, pergi ke lokasi "Komputer\HKEY_CURRENT_USER\ControlPanel\Desktop". 4. Selepas memasukkan, klik kanan pada ruang kosong dan pilih Cipta "Nilai DWORD" baharu 5. Namakan semula kepada "JPEGImportQuality" dan klik dua kali untuk membuka data.

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Dalam pembangunan PHP, pemadanan rentetan ialah tugas biasa, biasanya digunakan untuk mencari kandungan teks tertentu atau untuk mengesahkan format input. Walau bagaimanapun, kadangkala kita perlu mengelak daripada menggunakan ungkapan kemasukan yang tidak jelas untuk memastikan ketepatan padanan. Artikel ini akan memperkenalkan beberapa teknik untuk mengelakkan ungkapan kemasukan yang samar-samar semasa melakukan pemadanan rentetan dalam PHP dan memberikan contoh kod khusus. Gunakan fungsi preg_match() untuk padanan tepat Dalam PHP, anda boleh menggunakan preg_mat

Dikenali dengan prestasi yang berkuasa dan ciri serba boleh, iPhone tidak terlepas daripada cegukan atau kesukaran teknikal sekali-sekala, ciri biasa di kalangan peranti elektronik yang kompleks. Mengalami masalah iPhone boleh mengecewakan, tetapi biasanya penggera tidak diperlukan. Dalam panduan komprehensif ini, kami menyasarkan untuk menyahmistifikasi beberapa cabaran yang paling biasa dihadapi yang berkaitan dengan penggunaan iPhone. Pendekatan langkah demi langkah kami direka untuk membantu anda menyelesaikan isu lazim ini, menyediakan penyelesaian praktikal dan petua penyelesaian masalah untuk mengembalikan peralatan anda dalam keadaan berfungsi terbaik. Sama ada anda menghadapi masalah atau isu yang lebih kompleks, artikel ini boleh membantu anda menyelesaikannya dengan berkesan. Petua Penyelesaian Masalah Umum Sebelum menyelidiki langkah penyelesaian masalah khusus, berikut adalah beberapa yang berguna

Untuk menyelesaikan masalah yang jQuery.val() tidak boleh digunakan, contoh kod khusus diperlukan Untuk pembangun bahagian hadapan, menggunakan jQuery ialah salah satu operasi biasa. Antaranya, menggunakan kaedah .val() untuk mendapatkan atau menetapkan nilai elemen borang adalah operasi yang sangat biasa. Walau bagaimanapun, dalam beberapa kes tertentu, masalah tidak dapat menggunakan kaedah .val() mungkin timbul. Artikel ini akan memperkenalkan beberapa situasi dan penyelesaian biasa, serta memberikan contoh kod khusus. Penerangan Masalah Apabila menggunakan jQuery untuk membangunkan halaman hadapan, kadangkala anda akan menghadapi

Apakah soalan yang terlibat dalam peperiksaan Yulong 8 Wine Master? Apakah jawapan yang sepadan? Bagaimana untuk lulus peperiksaan dengan cepat? Terdapat banyak soalan yang perlu dijawab dalam aktiviti Peperiksaan Sarjana Wain, dan kita boleh merujuk kepada jawapan untuk menyelesaikannya. Soalan-soalan ini semua melibatkan pengetahuan tentang wain. Jika anda memerlukan rujukan, mari kita lihat analisis terperinci tentang jawapan kepada soalan peperiksaan Yakuza 8 Wine Master! Penjelasan terperinci tentang jawapan kepada soalan dalam peperiksaan Rulong 8 Wine Master 1. Soalan mengenai "wain". Ini adalah minuman keras suling yang dihasilkan oleh kilang penyulingan yang ditubuhkan oleh keluarga diraja Ia dibancuh daripada gula tebu yang ditanam dalam kuantiti yang banyak di Hawaii. Apakah nama wain ini? Jawapan: Rum 2. Soalan tentang "arak". Gambar menunjukkan minuman yang diperbuat daripada gin kering dan vermouth kering. Ia dicirikan oleh penambahan buah zaitun dan dikenali sebagai "cockney"
