• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

مشكل جستجو در ديتابيس sql server

Avesta

کاربر تازه وارد
تاریخ عضویت
22 دسامبر 2002
نوشته‌ها
39
لایک‌ها
1
سلام
من يك ديتابيس sql server دارم كه دو فيلد از فيلد هاي آن ntext است. وقتي يك select query براي جستجو را run مي كنم جستجو خيلي طول مي كشد. اگر اين دو فيلد را در جستجو قرار ندهم جستجو سريعتر صورت مي گيرد. يكي از اين فيلد ها انگليسي و يكي فارسي است.
كسي تجربه اي در اين زمينه دارد؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
در mssql فيلدهاي ntext (و البته image و text)همراه بقيه فيلدها ذخيره نميشن و فقط pointerي كه به محل واقعيشون اشاره ميكنه در table ذخيره ميشه - بهمين خاطر بصورت ذاتي مشكل performance دارن. البته شما ميتوني در صورت تمايل mssql رو مجبور كني كه اطلاعات اين فيلدها رو همراه با بقيه نگهداري كنه كه اصطلاحا بهش in row ميگن ولي شرطش اينه كه طولش از 7000 بايت بيشتر نباشه و اون تعيين پارامتر set in row در table هست. اينكار رو نميشه از طريق enterprise manager انجام داد بهمين خاطر خيليها اصلا خبر ندارن همچين كاري هم ميشه كرد! بايد از طريق query analyzer يا osql عمل كني و از تابع سيستمي tableoption استفاده كني. الان فرمت دقيقش رو از بر نيستم و به sql books online هم دسترسي ندارم ولي شما خيلي راحت ميتوني در books online پيداش كني.
تا جايي كه خاطرم هست اگر table از قبل اطلاعات داشته باشه تا زمانيكه همه اطلاعات يك دور update نشن عمل نميكنه و بعضي از توابع كار با text رو هم ديگه نميشه مورد استفاده قرار داد. بهتره شما خودت حتما متن دقيقش رو بخوني و اگه اينجا نكته اشتباهي ديدي خبر بدي كه يك وقت اطلاعات نادرست نداده باشم.
 
بالا