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.8هزار بازدید
+1 امتیاز
1 پاسخ 579 بازدید
+1 امتیاز
1 پاسخ 512 بازدید
0 امتیاز
1 پاسخ 443 بازدید
0 امتیاز
2 پاسخ 873 بازدید
+1 امتیاز
1 پاسخ 473 بازدید
+1 امتیاز
1 پاسخ 543 بازدید
+1 امتیاز
1 پاسخ 1.8هزار بازدید
0 امتیاز
1 پاسخ 2.4هزار بازدید
...