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 پاسخ 449 بازدید
+1 امتیاز
1 پاسخ 368 بازدید
0 امتیاز
1 پاسخ 359 بازدید
0 امتیاز
2 پاسخ 565 بازدید
+1 امتیاز
1 پاسخ 359 بازدید
+1 امتیاز
1 پاسخ 416 بازدید
+1 امتیاز
1 پاسخ 1.7هزار بازدید
0 امتیاز
1 پاسخ 2.3هزار بازدید
...