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

نام تاپیک: مقایسه Performance دو روش Join و Cross Apply

  1. #1

    مقایسه Performance دو روش Join و Cross Apply

    سلام.
    دوستان از دو روش متفاوت کوئری گرفته شده و نتایج این هاست:

    کوئری ها

    select *
    from Tbl1 A
    join (select * from Tbl2) B on A.id = B.fid

    select *
    from Tbl1 A
    cross apply (select * from Tbl2 where A.id = fid) B


    روش Cross Apply

    (31911 row(s) affected)
    Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    Table 'SalOrderAddOns'. Scan count 15543, logical reads 93961, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    Table 'SALOrderInvs'. Scan count 8058, logical reads 16255, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    Table 'SALOrders'. Scan count 1, logical reads 183, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

    SQL Server Execution Times:
    CPU time = 608 ms, elapsed time = 1125 ms.

    SQL Server Execution Times:
    CPU time = 0 ms, elapsed time = 0 ms.


    روش Join

    (31911 row(s) affected)
    Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    Table 'SalOrderAddOns'. Scan count 2, logical reads 242, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    Table 'SALOrderInvs'. Scan count 2, logical reads 107, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    Table 'SALOrders'. Scan count 1, logical reads 183, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

    SQL Server Execution Times:
    CPU time = 219 ms, elapsed time = 1721 ms.

    SQL Server Execution Times:
    CPU time = 0 ms, elapsed time = 0 ms.


    کدام روش بهتر است و چرا؟
    تعداد Read ها خیلی متفاوته ولی زمان اونی که Read بیشتر داره کمتره!
    اصولا این دو روش رو مقایسه کنید.
    ممنون.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  2. #2

    نقل قول: مقایسه Performance دو روش Join و Cross Apply

    سلام.
    شما نوع نوشتنتون غلطه.
    از این روش استفاده کنید.

    Create Nonclustered index IXTest on tbl1(Id)
    Inlcude(all fields of tbl1 that appear on select list)

    Create Nonclustered index IXTest on tbl2(Id)
    Inlcude(all fields of tbl2 that appear on select list)

    select A.*,b.*
    from Tbl1 A
    Inner Join Tbl2 b

    on A.id = B.fid

  3. #3

    نقل قول: مقایسه Performance دو روش Join و Cross Apply

    به دلیل این که تعداد فیلد های جداول زیاده، استفاده مستقیم از join با نام جدول بسیار وقت گیر تر می شه.
    در حقیقت سلکت های داخل پرانتز * نیست و نام دو تا فیلده.
    کلاستر ایندکس رو تست نکردم اما لطفا با همون روش مقایسه رو انجام بدید تا تفاوت های این دو در بیاد.
    در کل دوست داشتم در مورد اون استاتیستیک های در اومده هم صحبت شه.
    متشکرم.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  4. #4

    نقل قول: مقایسه Performance دو روش Join و Cross Apply

    تا Plan در کنارش نباشه یک ذره صحبت کردن سخت میشه.
    ولی الان در Cross Join از ایندکس مناسبی نتونسته استفاده کنه و همین باعث افزایش logical Read های شما شده.

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

  1. cross apply
    نوشته شده توسط ققنوس در ایران در بخش T-SQL
    پاسخ: 1
    آخرین پست: پنج شنبه 13 مرداد 1390, 09:04 صبح
  2. مقایسه Performance بین استفاده از CTE و Cursor
    نوشته شده توسط mannai29 در بخش T-SQL
    پاسخ: 4
    آخرین پست: دوشنبه 04 بهمن 1389, 18:55 عصر
  3. مقایسه Performance بین SQL Server و Oracle
    نوشته شده توسط Exception در بخش سایر پایگاه‌های داده
    پاسخ: 3
    آخرین پست: چهارشنبه 06 آبان 1388, 19:47 عصر
  4. مقایسه ایی بر روش های رمزنگاری و سرعت انها.
    نوشته شده توسط Best Programmer در بخش امنیت در نرم افزار و برنامه نویسی
    پاسخ: 4
    آخرین پست: سه شنبه 08 اردیبهشت 1388, 12:27 عصر
  5. پردازش کنترل ها در ASP.NET - مقایسه روش قدیم (HTML Embeded) با جدید
    نوشته شده توسط alireza6282 در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: شنبه 05 خرداد 1386, 21:20 عصر

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

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