PDA

View Full Version : تعداد ورودیهای function



arshad89
شنبه 28 فروردین 1389, 22:12 عصر
سلام
میخواستم بدونم تعداد ورودیها در سرعت Function تاثیری داره یا نه؟
البته این function رو من در قسمت formula در یک ستون در جدولم استفاده می کنم.
حالا تعداد ورودیها یا همون فیلدهای جدول تاثیری در سرعت function داره؟واسه رکوردهای بالای
یک میلیون در نظر بگیرید.ممن.ن میشم راهنمایی کنید.

Rejnev
شنبه 28 فروردین 1389, 22:18 عصر
سلام
خير. عملياتي كه داخلش صورت ميگيره توي سرعت تاثير داره.
توي يك Select كه يك تابع هم داخلش هست به ازاي هر ركوردي كه خونده ميشه، تابع اجرا ميشه.
البته توي توابعي كه جدول برميگردونن اينطور نيست.

محمد سلیم آبادی
یک شنبه 29 فروردین 1389, 03:40 صبح
سلام،

البته این function رو من در قسمت formula در یک ستون در جدولم استفاده می کنم
به این نوع ستون ها گفته میشه ستون محاسباتی یا Computed Column.


حالا تعداد ورودیها یا همون فیلدهای جدول تاثیری در سرعت function داره؟واسه رکوردهای بالای
یک میلیون در نظر بگیرید
مشخص نکردین که از چه نسخه ی SQL Server استفاده می کنید، اگر با 2005 بالاتر کار می کنید می تونید از خاصیت Persisted استفاده کنید تا هر بار مقدار ستون محاسباتی، محاسبه نشه و به طور فیزیکی داده ذخیره شود.

در کل Scalar UDF به دلیل اینکه توسط Optimizer بهینه نمیشه هزینه ی کوئری را افزایش می دهد.

mollyAreco
یک شنبه 29 فروردین 1389, 14:09 عصر
در کل Scalar UDF به دلیل اینکه توسط Optimizer بهینه نمیشه هزینه ی کوئری را افزایش می دهد.[/quote]

سلام
لطفا میشه در مورد Scalar UDF و Optimizer بیشتر توضیح بدین.:قهقهه:

محمد سلیم آبادی
یک شنبه 29 فروردین 1389, 14:15 عصر
سلام،
Scalar Uesr-Defined Function :: تابعی هست که توسط کاربر تعریف شده است. این تابع تنها یک مقدار را بر میگرداند نه یک جدول (data set).

Query ها قبل از اینه اجرا شوند توسط یک چیزی به نام Optimizer بررسی می شوند و بر اساس یکسری عوامل مثل هزینه ی پایین بهترین Plan (نقشه) برای اجرای Query انتخاب می شود. Optimizer مشخص می کند که از چه Index هایی استفاده شود و...