0 امتیاز
قبل در برنامه نویسی توسط (142 امتیاز)
سلام

یک دیتابیس از نوع sqlServer با تعداد زیادی رکورد وجود دارد . یک query ساده  که روی دو ستون varchar آن یک select انجام می دهد را روی آن اجرا می کنیم زمان پاسخگویی هنگامی که روی خود دیتابیس انجام می شود بسیار کم است اما هنگامی که از یک برنامه جاوایی همین query انجام می شود مدت پاسخگویی بسیار بالا می باشد. ستون های که روی آنها where خورده است دارای index می باشند (این مشکل در jmeter و در یک برنامه ساده جاوایی دیده می شود ) برای اتصال به sqlserver از JTDS استفاده شده است

1 پاسخ

+2 امتیاز
قبل توسط (142 امتیاز)

سلام

در JTDS هنگام اسال query ، پارامتر ها به صورت unicode ارسال می شوند در صورتی که به صورت پیشفرض در sqlserver ستون ها بر اساس ASCI ایندکس می شوند لذا در هنگام اجرای query ایندکس ها اعمال نشده و تمام رکورد ها scan می شوند.

برای حل این مشکل یا باید collation در sqlserver درست شود یا در هنگام گرفتن connection در قسمت url پارامتر زیر نیز ارسال گردد :

sendStringParametersAsUnicode=false

 

سوالات مشابه

0 امتیاز
1 پاسخ 3.6هزار بازدید
+1 امتیاز
1 پاسخ 441 بازدید
+1 امتیاز
1 پاسخ 361 بازدید
0 امتیاز
1 پاسخ 354 بازدید
0 امتیاز
2 پاسخ 553 بازدید
+1 امتیاز
1 پاسخ 355 بازدید
+1 امتیاز
1 پاسخ 408 بازدید
+1 امتیاز
1 پاسخ 1.7هزار بازدید
0 امتیاز
1 پاسخ 2.3هزار بازدید
...