تبلیغات
تبلیغات متنی
محبوبترینها
بارشهای سیلآسا در راه است! آیا خانه شما آماده است؟
بارشهای سیلآسا در راه است! آیا خانه شما آماده است؟
قیمت انواع دستگاه تصفیه آب خانگی در ایران
نمایش جنگ دینامیت شو در تهران [از بیوگرافی میلاد صالح پور تا خرید بلیط]
9 روش جرم گیری ماشین لباسشویی سامسونگ برای از بین بردن بوی بد
ساندویچ پانل: بهترین گزینه برای ساخت و ساز سریع
خرید بیمه، استعلام و مقایسه انواع بیمه درمان ✅?
پروازهای مشهد به دبی چه زمانی ارزان میشوند؟
تجربه غذاهای فرانسوی در قلب پاریس بهترین رستورانها و کافهها
دلایل زنگ زدن فلزات و روش های جلوگیری از آن
خرید بلیط چارتر هواپیمایی ماهان _ ماهان گشت
صفحه اول
آرشیو مطالب
ورود/عضویت
هواشناسی
قیمت طلا سکه و ارز
قیمت خودرو
مطالب در سایت شما
تبادل لینک
ارتباط با ما
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
آمار وبسایت
تعداد کل بازدیدها :
1835015876
بازسازي ايندکس ها به صورت Online
واضح آرشیو وب فارسی:راسخون:
بازسازي ايندکس ها به صورت Online کار ايندکس Online را براي محيط SQL Server خود اختصاصي کنيد: اخيراً کار نگهداري ايندکس ها را به عهده گرفته ام. به رئيسم گفتم که بلوکه کردن که به وسيله سازمان دهي مجدد ايندکس ها انجام مي شود و قفل کردن جدول که به وسيله بازسازي هاي ايندکس Offline انجام ميشود، غير قابل قبول هستند، زيرا محيط SQL Server ما از تمام سيستم هاي Enterprise Edition از SQL Server 2008 و2005 تشکيل شده است و من تصميم دارم از مشکلات اين چنيني جلوگيري کنم. من يک راه حل مناسب با قابليت اختصاصي شدن را جستجو کردم. در نهايت، راه حل خاص خودم را ايجاد کردم، يک کار ايندکس Online که در اين مقاله آن را با شما به اشتراک گذاشته اميدوارم براي شما نيز مفيد واقع شود. نحوه ايجاد اين کار، نحوه پياده سازي اين کار و پرامترهاي مختلف کار را به شما نشان خواهم داد. ايجاد کار ايندکس Online: نيازمندي هاي اوليه من براي اين کار ساده بود. ابتدا بايد مشخص مي کردم کدام ايندکس ها مي توانند به صورت online بازسازي شوند. با نگاه سريعي به MSDN، دستور العمل هاي خاصي مشخص مي شود. انواع داده شي بزرگ (LOB) مثل ، varchar(max ، nvarchar(max ، text ntex ، image varbinary (max و (XML) بايد ايجاد و بازسازي شوند يا به صورت offline حذف شوند. ايندکس هاي خوشه بندي نشده منحصر به فرد مي توانند به صورت online ايجاد شوند، هنگامي که اين جدول حاوي انواع داده LOB است، ولي هيچ يک از اين ستون ها در تعريف ايندکس به عنوان ستون کليد يا غير کليد استفاده نمي شوند. ايندکس هاي خوشه بندي نشده که با ستون هاي نوع داده LOB تعريف مي شوند، بايد به صورت Offline ايجاد يا بازسازي شوند. مشخص کنيد که کدام ايندکس ها مي توانند به صورت online بازسازي شوند، زيرا بازسازي با گزينه ايندکس online در ايندکسي صادر مي شود که با معيار offline بايد متناسب باشد که اين امر منجر به يک خطا و رها شدن ايندکس بدون پردازش مي شود. بعد از تعيين اين که کدام ايندکس ها مي توانند به درستي به صورت online بازسازي شوند، پارامترهاي مختلفي را به مراحل مختلف کار ايندکس اضافه کردم. براي ايندکس هايي که نمي توانند به صورت online بازسازي شوند، مي توانيد آن ها را سازمان دهي مجدد کنيد، از آن ها صرف نظر نماييد يا آن ها را به صورت offline بازسازي کنيد (اگر مدل کسب و کار شما اجازه مي دهد). هم چنين پرامترهايي را اضافه کردم که به شما اجازه مي دهند ايندکس ها را سازمان دهد مجدد کنيد، البته اگر آن ها تحت درصد قطعه بندي خاصي باشند و در صورتي آن ها را بازسازي کنيد که روي درصد خاصي از قطعه بندي باشند. سپس ويژگي هايي را براي رديابي مدت زمان هر ايندکس، زمان شروع و زمان پايان، پيشرفت، قطعه بندي قبل و بعد از اجراي کار و هر بلوکه کردن نتيجه اي را تعبيه کردم. در نهايت، گزينه اي را براي کنار گذاشتن پايگاه داده ها و جداول از عمليات ايندکس اضافه کرده ام. ولي به رئيسم نگفتم که بلوکه کردن در نتيجه سازمان دهي مجدد قابل قبول نبود؟ براي رفع اين مشکل، SPID عمليات ايندکس را رديابي کرده ام و يک کار فرعي را براي پايش هر بلوکه کردن ايجاد کردم که اين عمليات ممکن است به وجود آيند. اگر بلوکه کردن براي بيش از X دقيقه در يک رديف و بلوک هاي بيشتر از X فرآيند وجود داشته باشد، SPID کشته مي شود، دوره زماني طي مي گردد و عمليات ايندکس بر مي گردد. بر طبق گفته مايکروسافت، سازمان دهي مجدد، قفل هاي بلوکه کردن را در دراز مدت نگه نمي دارد؛ بنابراين، SQL Server به هنگام رساني ها يا پرس و جوهاي در حال اجرا را بلوکه نمي کند. هر چند، در محيط هاي شديداً تبادلي نمي توانند از 1800 تراکنش در هر دقيقه فراتر روند، هنگامي که در محيط خودم هستم، بايد مراقب سازمان دهي هاي مجدد باشم، بنابراين تشخيص دهنده بلوکه کردن خودم را دارم. اگر تشخيص دهنده بلوکه کردن، يک SPID را بکشد که در فرآيند انجام يک بازسازي است، چه اتفاقي مي افتد؟ به دليل اين که عمليات بازسازي به عنوان تراکنش هاي مستقل روي مي دهند، rollback تحميل شده از کشتن يک بازسازي offline روي يک ايندکس بزرگ که در حال تکميل شدن بوده است، خيلي بدتر از اين است که به عمليات اجازه ادامه داده بدهيم. به اين دليل، آن ها را با تشخيص دهنده بلوکه مدنظرقرار ندادم. همچنين با بازسازي Online به دلايل مختلفي را مد نظر نداشتم ، از قبيل پيچيدگي هاي کارآيي احتمال مربوط به برگشت به نگاشت ايندکس ها. بر طبق Microsoft SQL Server "2005 Index Operations" (technet.microsoft.com/en-us/library/cc966402.aspx "فقط دوره هاي زماني خيلي کوتاهي وجود دارد که در آن ها، از عمليات Select و DML هم زمان جلوگيري مي شود". هر بلوکه کردني بايد قابل تحمل باشد و جايگزين هايي داشته باشد. يک سازمان دهي مجدد، داستان متفاوتي است. به دليل اين که يک سازمان دهي مجدد فقط روي يک جفت صفحه در يک زمان عمل مي کند، اگر کشته شود، فقط عمليات جايگزيني فعلي تحت تأثير قرار مي گيرد. مرتبه بعدي که يک سازمان دهي مجدد صادر مي شود، اين کار هنگامي بهبود مي يابد که از آ ن دست بکشيم .
پياده سازي کار ايندکس: براي ايجاد کار ايندکس، اين کد را اجرا کنيد که مي توانيد آن را از www.sqlmag.com با InstantDOC ID 101777 به اين ترتيب دان لود کنيد: 1-Usp_update_schedule_enabler.sql 2-Index_BuildlndexKey.sql 3-Index_Processlndexes.sql 4-Index_PostCleanup_sql 5-Index_PostFragCale.sql 6-Index_HandleBlocking/sql 7-jod_Blocking_Killer.sql 8-job_Indexing_Master.sql توجه داشته باشيد که از پايگاه داده اي به نام "Common" براي ميزباني عملکرد مشترک بين چندين سرور استفاده کردم. قبل از اجراي اين فايل هاي اجرايي، بايدCommon را در هر اسکريپت با مراجعي جايگزين کنيد تا مناسب محيط شما باشد. هم چنين، در رويه Index_BuildIndexKey، جداولي را در يک گروه فايل "Tables" ايجاد کردم. بايد Tables را به نام گروه فايل تغيير دهيد، وگرنه کار ناموفق خواهد بود. هنگام اجراي job_Indexing_Master.sql، چهار هشدار مرحله ناموجود را دريافت خواهيد کرد. صرف نظر کردن از آن ها ايمن است. هر مرحله در يک کار بايد به صورت ترتيبي ايجاد شود و برخي مراحل، براي صرف نظر کردن از مراحل بعدي در رويداد عدم موفقيت مرحله اي تنظيم مي شوند. مثلاً، اگر مرحله 2 نا موفق باشد، کار به مرحله8 مي رود. هنگامي که مرحله 2 ايجاد مي شود، قطعاً مرحله8 هنوز وجود ندارد و هشداري صادر مي شود. بعد از اجراي اسکريپت هاي فراهم شده، دو کار SQL Server Agent غير فعال جديد را خواهيد ديد: DB Maint-Blocking Killer و DB-Maint IndexMaint . مراحل کار DB-Maint IndexMaint را طوري نام گذاري کرده ام که خود توضيح باشند. در ادامه سريعي بر اين مراحل داريم: *مرحله1 يک جدول رديابي را مي سازد که به وسيله تمام مراحل بعد براي انجام عمليات آن ها مصرف مي شود. اين مرحله حاوي بررسي ويرايش و بررسي نگارش است. اگر از ويرايش و نگارش مناسب براي بازسازي online استفاده مي کنيد، تمام ايندکس هاي مدنظر براي بازسازي به صورت offline انجام خواهند شد. *مرحله2 و مرحله8 براي تنظيم مدت پشتيبان گيري در صورت لزوم هستند. اين عملکرد به رشد و پر شدن logهاي تراکنش شما بسته به پيکربندي هاي درايو و رشد خودکار کمک مي کند. بخاطر داشته باشيد که logهاي تراکنش شما در طي يک عمل بازسازي شفاف نيستند، زيرا همان گونه که بيان کردم، يک عمل بازسازي به عنوان يک تراکنش منفرد روي مي دهد. *مرحله 3 و مرحله7 کار DB Maint-Blocking Killer ايجاد شده قبل را براي پايش مقدار بلوکه کردن توسط يک عمل ايندکس خاص به وجود آمده است، فعال و غير فعال مي کنند. اگر بخواهيد اين ويژگي را اجرا کنيد، اين مراحل را حذف کنيد. *مرحله4 و مرحله9 در صورتي انجام مي شوند که بتوانيد از مدل بازيافت در محيط سوييچ کنيد. من روش بهترين شيوه مايکروسافت را در هر مرحله کار گنجانده ام تا به مدل هاي بازيافت مختلف توجه داشته باشيم. اين ويژگي را به خاطر دارم که بازسازي يک عمل باlog حجيم است، بدين معني که هنگامي که پايگاه داده شما در مدل بازيافت logged حجيم است، در حداقل log بماند. بر طبق "SQL Server2005 Online Index Operations" هنگام بازسازي يک ايندکس در يک پايگاه داده با logged حجيم، نسبت log به داده، 10درصد نسبت log به داده بازيافت کامل است. logging حداقل هنگامي مفيد است که بخواهيد اندازه log تراکنش را قابل مديريت نگه داريد، مخصوصاً در محيط هاي کپي برداري. *مرحله5 تمام ايندکس ها را در جدول ايجاد شده در مرحله 1 پردازش مي کند. مي توانيد retry interval و retry attempts را در اين مرحله با زمان مناسب براي انتظار در رويدادي که در آن blocking killer اين مرحله را خاتمه مي دهد، تغيير دهيد. *مرحله 6 هر يک از عمليات ناقص يا نا موفق را در log خطاي SQL Server ثبت مي کند. *مرحله 10 برگشته و قطعه بندي را دوباره محاسبه مي کند، بنابراين مي توانيد تصوير قبل و بعد را ببينيد. *مرحله 10 و مرحله1 از ديدگاه مديريت پويا (DMV) sys.dm_db_index_physical_stats براي جمع آوري اطلاعاتي درباره ايندکس ها استفاده مي کنند که فقط نياز به يک قفل جدول IS دارد، بدون توجه به حالتي که در آن اجرا مي شود. شکل 1 تمام مراحل فهرست شده بالا را در SQL Server Management Studio SSMS)) نشان مي دهد. پرامترهاي کار: بايد نحوه استفاده از تمام پرامترهاي ورودي را براي اختصاص کردن طراحي کار ايندکس براي محيط خود بدانيد. رويه ذخيره شده در اولين مرحله کار DB-Maint Index Maint (Build Indexing Key تعداد پارامتر را مي پذيرد. @minFragPercent حداقل درصد قطعه بندي يک ايندکس است که بايد قبل از در نظر گرفتن يک عمليات ايندکس لحاظ شود. مي توانيد حداقل درصد قطعه بندي را بر طبق نيازهاي خاص خود تنظيم کنيد. هر چيزي در زير اين آستانه، صرف نظر خواهد شد.@maxAttempts تعداد دفعاتي است که يک عمليات ايندکس که قبلاً توسط کار DB Maint-Blocking Killer به خاطر بلوکه کردن مازاد کشته شده است، برگردانده خواهد شد. اگر بخواهيد فقط يک يا دو پايگاه داده را مد نظر قرار دهيد، از @databaselncludelist استفاده کنيد که يک varchar با حائل کاما است. اگر بخواهيد فقط تعدادي پايگاه داده را کنار بگذاريد، از @databaseExcludelist استفاده کنيد که آن هم يک varchar با حائل کامل است. سرانجام، اگر بخواهيد فقط يک جدول خاص را کنار بگذاريد، مي توانيد اين کار را با استفاده از @table Excludelist انجام دهيد. رويه ذخيره شده در مرحله 5 کار ايندکس نيز تعدادي پارامتر را مي گيرد که شکل 2 نشان مي دهد @reorgMinFragPercent حداقل مقدار قطعه بندي است که بايد براي سازمان دهي مجدد وجود داشته باشد. اين مقدار نبايد زير مقدار @minFragPercent در مرحله Build Index Key باشد. @rebuildMinFragPercent حداقل قطعه بندي است که بايد براي بازسازي وجود داشته باشد. مثلاً، اگر اين مقادير را با 20 درصد و 30 درصد تنظيم کنيد، هر چيزي زير 20 درصد قطعه بندي صرف نظر خواهد شد، هر چيزي بين 20 و 30 درصد قطعه بندي سازمان دهي مجدد مي شود و هر چيزي بزرگ تر يا مساوي 30 درصد، در صورت امکان به صورت online بازسازي مي شود. اگر اين دو درصد را مساوي يکديگر تنظيم کنيد، فقط بازسازي روي خواهند داد. تنظيم @onlineOnly با 1بدين معني است که قصد داريد فقط بازسازي هاي online را انجام دهيد. تنظيم اين مقدار با 0 موجب خواهد شد ايندکس ها در صورت امکان به صورت online ساخته شوند، در غير اين صورت به صورت offline ساخته مي شوند. @reorgNonOnline در صورت تنظيم با 1 به همراه @onlineOnly که با 1 تنظيم شده است، به ايندکس ها اجازه مي دهد که نتوانند بازسازي شوند. اگر تمام ايندکس هاي شما بتوانند سازمان دهي مجدد شوند، @globalAllowReargs را اضافه کرده ام تا ايمني ناموفق نهايي باشد که اجازه مي دهد سازمان دهي هاي مجدد در مقياس جهاني روي دهند. در محيط من، مطلقاً حياتي است که برخي ايندکس ها مجدداً سازمان دهي نشوند. اگر تمام ايندکس هاي شما بتوانند سازمان دهي مجدد شوند، @globalAllowReargs مي تواند با 1 تنظيم شود. سرانجام،DB Maint-Blocking Killer حاوي يک مرحله است که شامل يک رويه ذخيره شده است که دو پارامتر را مي پذير. @blockingMins تعداد دقايقي است که يک SPID به عنوان بلوکه شده تشخيص داده شده است. اين کار هر دقيقه اجرا مي شود و بررسي بلوکه شدن را انجام مي دهد. اگر SPID را بيابد که يک عمليات ايندکس را انجام مي دهد، @blockingMins را در يک رديف بلوکه مي کند و SPID را مي کشد. براي تعريف بلوکه کردن، پارامتر @blockingProcesses را اضافه کرده ام. اگر SPID بلوکه شده بيش از فرآيندهاي @blockingProcesses بلوکه شده باشد، خاطي در نظر گرفته شده و تعداد بلوکه آن تکرار مي شود. به خاطر زمان و فضا، در اين مقاله، مستندات جامع کد توصيف کننده هر مرحله و پارامترهاي آن ها را نياورده ام. هنگام پيکربندي DB-Maint Index Maint طبق سليقه خود، تعيين زمان بندي را داشته باشيد، مطمئن شويد که آن را در SSMS با کليک راست روي کار و انتخاب Enable فعال کرده ايد.
حداقل کردن کارآيي ايندکس: به دليل اين که عمليات بازسازي به عنوان تراکنشي مستقل روي مي دهد، rollback تحميلي از کشتن بازسازي offline روي يک ايندکس بزرگ که در حال تکميل است، خيلي بدتر از اجازه دادن به ادامه آن عمليات است. اين راه حل به شما اجازه مي دهد حداکثر کارآيي را در مورد ايندکس هاي خود بدون اجبار در قرباني کردن چيزي داشته باشيد. من نتوانستم عملکردي را به اين کار اضافه کنم، ولي تشخيص دادم که هيچ کاري به طور کامل در تمام برنامه ها نوشته نمي شود، يا به کار گرفته نمي شود. در اين کد، به تعدادي توضيح توجه خواهيد کرد که در توسعه حداقل هستند. اين ها تعدادي پارامتر اضافي هستند که مي توانند استفاده شوند، توسعه يابند يا حذف شوند تا اين کار طبق محيط شما طراحي شود. من اميدوارم اين کار ايندکس به شما کمک کند به سادگي بازسازي ايندکس ها را به صورت online انجام دهيد. منبع:ماهنامه ي رايانه شماره 188
این صفحه را در گوگل محبوب کنید
[ارسال شده از: راسخون]
[مشاهده در: www.rasekhoon.net]
[تعداد بازديد از اين مطلب: 604]
صفحات پیشنهادی
بازسازي ايندکس ها به صورت Online
بازسازي ايندکس ها به صورت Online کار ايندکس Online را براي محيط SQL Server خود اختصاصي کنيد: اخيراً کار نگهداري ايندکس ها را به عهده گرفته ام. به رئيسم ...
بازسازي ايندکس ها به صورت Online کار ايندکس Online را براي محيط SQL Server خود اختصاصي کنيد: اخيراً کار نگهداري ايندکس ها را به عهده گرفته ام. به رئيسم ...
تغییر ظاهر سایت در زمان اجرا و به صورت پویا -
نسبت به زمان بارگذاری سایت خود در مرورگر بازدیدکنندگان آگاه باشید. بازسازي ايندکس ها به صورت Online بازسازي ايندکس ها به صورت Online کار ايندکس Online ...
نسبت به زمان بارگذاری سایت خود در مرورگر بازدیدکنندگان آگاه باشید. بازسازي ايندکس ها به صورت Online بازسازي ايندکس ها به صورت Online کار ايندکس Online ...
ديدگاه هاي کارشناسان در مورد مجازي سازي SQL Server
هر چند مجازي سازي داراي معايبي نيز است، در صورتي مي تواند به طور موفق در محيط هاي مختلف SQL Server ... کنند و راهبران مجازي سازي بايد اطمينان دهند که DBAها ايندکس ها را در ميانه يک روز هفته بازسازي نمي کنند. .... بازسازي ايندکس ها به صورت Online ...
هر چند مجازي سازي داراي معايبي نيز است، در صورتي مي تواند به طور موفق در محيط هاي مختلف SQL Server ... کنند و راهبران مجازي سازي بايد اطمينان دهند که DBAها ايندکس ها را در ميانه يک روز هفته بازسازي نمي کنند. .... بازسازي ايندکس ها به صورت Online ...
متن کاوي
... بهره مي برد. مثلاً، با به کار بردن داده کاوي بر پايگاه داده مشتري، يک تحليل گر ممکن است پي ببرد ک. ... بازسازي ايندکس ها به صورت Online · ابتکاري نو در حافظه ...
... بهره مي برد. مثلاً، با به کار بردن داده کاوي بر پايگاه داده مشتري، يک تحليل گر ممکن است پي ببرد ک. ... بازسازي ايندکس ها به صورت Online · ابتکاري نو در حافظه ...
به حداکثر رساندن عملکرد ذخيره سازي
خواندن ها و نوشتن ها به طور یکسان در سراسر تمام دیسک ها در آرایه تقسیم می شوند وموجب سریع تر شدن آنها می گردد. ..... بازسازي ايندکس ها به صورت Online ...
خواندن ها و نوشتن ها به طور یکسان در سراسر تمام دیسک ها در آرایه تقسیم می شوند وموجب سریع تر شدن آنها می گردد. ..... بازسازي ايندکس ها به صورت Online ...
آماده سازي داده ها براي داده کاوي
آماده سازي داده ها براي داده کاوي مقدمه : امروزه ديگر مشکل کمبود داده و اطلاعات روبرو نيستيم و به جاي آن با مسأله داده ها و اطلاعات درست ... بازسازي ايندکس ها به صورت Online ...
آماده سازي داده ها براي داده کاوي مقدمه : امروزه ديگر مشکل کمبود داده و اطلاعات روبرو نيستيم و به جاي آن با مسأله داده ها و اطلاعات درست ... بازسازي ايندکس ها به صورت Online ...
ناول سوزه 11
به همانند ويرايش هاي قبلي آن ، اين ويرايش نيز در دو مدل ارائه مي گردد: -ويرايش حرفه اي مخصوص سرورها (SLES) -ويرايش روميزي ... بازسازي ايندکس ها به صورت Online ...
به همانند ويرايش هاي قبلي آن ، اين ويرايش نيز در دو مدل ارائه مي گردد: -ويرايش حرفه اي مخصوص سرورها (SLES) -ويرايش روميزي ... بازسازي ايندکس ها به صورت Online ...
نگاهي به تحقيقات انجام شده در آزمايشگاه هاي شرکت HP
نگاهي به تحقيقات انجام شده در آزمايشگاه هاي شرکت HP در اين مقاله آقاي جان براندون (John Brandon) نگاهي به تکنولوژي هايي مي ... بازسازي ايندکس ها به صورت Online ...
نگاهي به تحقيقات انجام شده در آزمايشگاه هاي شرکت HP در اين مقاله آقاي جان براندون (John Brandon) نگاهي به تکنولوژي هايي مي ... بازسازي ايندکس ها به صورت Online ...
نرم افزار بازيافت و پشتيبان گيري SQL Server
احادیث و روایات: امام موسی کاظم (ع):اگر به تعداد اهل بدر [مؤمن كامل] در ميان شما بود، قائم ما قيام می كرد. .... بازسازي ايندکس ها به صورت Online · چگونه با استفاده از Excel ...
احادیث و روایات: امام موسی کاظم (ع):اگر به تعداد اهل بدر [مؤمن كامل] در ميان شما بود، قائم ما قيام می كرد. .... بازسازي ايندکس ها به صورت Online · چگونه با استفاده از Excel ...
سرويس پک2 ويستا
پک فرم ويستا از زمان منتشر شدنش،شاهد به روز رساني ها وbug fixهاي بسيار زيادي به طور کلي ياجزيي بوده است.مهمترين آنه. ... بازسازي ايندکس ها به صورت Online ...
پک فرم ويستا از زمان منتشر شدنش،شاهد به روز رساني ها وbug fixهاي بسيار زيادي به طور کلي ياجزيي بوده است.مهمترين آنه. ... بازسازي ايندکس ها به صورت Online ...
-
گوناگون
پربازدیدترینها