نمایش نتایج 1 تا 2 از 2

نام تاپیک: بهینه سازی کوئری

  1. #1

    بهینه سازی کوئری

    با سلام و وقت بخیر خدمت تمامی اساتید.
    جداول زیر را در پایگاه داده داریم.
    tblDevice(Id,Name,...)
    tblPingResult(Id,DeviceId,DateTime,Result,....)

    کوئری میخواستم که آخرین وضعیت دستگاه ها را بصورت یک جا بهم بده. (آخرین وضعیت یعنی Result مربوط به بزرگترین DateTime برای هر دستگاه)
    برای اینکار از Query زیر استفاده کردم که هم خیلی زمانگیره هم خیلی حرفه ای نیست.
    اساتید میتونن پیشنهاد برای بهینه سازی بهم بدن؟
    آخه تابع ها خیلی کند هستن و تعداد رکوردهای جدول tblPingResult هر روز در حال افزایش هست. ( حدود 10 تا 15 هزار رکورد در هر روز)

    SELECT
    D.Id,
    D.Name,
    udfDevice_LastPingResult( D.Id ),
    udfDevice_LastPingDateTime( D.Id )
    FROM
    tblDevice D
    INNER JOIN tblPingResult PR
    ON D.Device = PR.DeviceId
    Group By
    D.Id,D.Name





  2. #2

    نقل قول: بهینه سازی کوئری

    سلام.
    توابع Scalar رو به inline Table Function ها تبدیل کنید و به با استفاده از Cross Apply اونو پیاده سازی کنید.
    با این روش یک بار محاسبات داخل توابع انجام میشه نه به ازای هررکورد یک بار تابع فراخوانی بشه.

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: شنبه 13 اردیبهشت 1393, 21:12 عصر
  2. پاسخ: 1
    آخرین پست: پنج شنبه 22 اسفند 1392, 20:50 عصر
  3. پاسخ: 0
    آخرین پست: پنج شنبه 22 اسفند 1392, 13:28 عصر
  4. بهینه سازی کوئری
    نوشته شده توسط ray2000 در بخش T-SQL
    پاسخ: 4
    آخرین پست: دوشنبه 23 اردیبهشت 1392, 20:59 عصر
  5. کمک برای بهینه سازی کوئری.
    نوشته شده توسط majid325 در بخش SQL Server
    پاسخ: 1
    آخرین پست: پنج شنبه 11 مرداد 1386, 19:53 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

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