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

نام تاپیک: سلام نظرسنجی در مورد حل یک مساله

  1. #1

    سلام نظرسنجی در مورد حل یک مساله

    سلام خسته نباشید
    من به عتوان مثال برنامه داروخانه رو مثال میزنم.
    من توی یک برنامه ممکن چنیدین داروخانه داشته باشم .مثلا 10 داروخانه در برنامه من ثبت شده.
    هر کدوم از این داروخانه ها ممکنه در ماه 40000 هزار نسخه ثبت کنن.
    خوب توی یک ماه 10*40000
    400000 هزار نسخه و توی یک سال می شه 12*400000 = 4800000
    و فکر کنم رقم کمی هم نباشه .
    حالا سوالم .
    شما اگر می خواهید جدول نسخه رو بسازید برای هر داروخانه یک جدول می سازید یا برای هر
    ماه یک جدول می سازید یا تمامی نسخه ها رو در یک جدول ذخیره می کنید.

  2. #2
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

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

  3. #3

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    درود :
    به نظر من هر داروخانه یک جدول برای یک سال مناسب تره .

    چون شما در هر داروخانه با یک جدول سر وکار دارند و عملیات لازم برای اضافه کردن و گزارش گیری ها بر روی تعداد کمتری ردیف و با شرط های کمتری انجام میشه .

    البته اگه لازم باشه همیشه با تمام داروخانه ها کار کنی میتونی به گفته ASKaffash عمل کنی فقط برای هر داروخانه و نسخه از شاخص مناسن استفاده کن .

    فکر خوش .

  4. #4
    کاربر دائمی آواتار حسین شهریاری
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    794

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    اگه من باشم تمام نسخه ها را در یک جدول ذخیره میکنم.ولی پایان هر سال دوره مالی ایجاد میکردم.
    در کل تمام نسخه ها برای یک سال در یک جدول ذخیره میشن.

  5. #5

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    اگر تعداد جداول زیاد بشه چه تعثیراتی در Sql ایجاد می کنه .

  6. #6

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    در ضمن شما نمی توانید متوجه بشوید که پایان هر سال مالی کی اتفاق می افتد .
    چون کاربری که سال مالی را ایجاد می کند ممکن است دوباره به ماه قبلی باز گردد .
    به نظر شما sql می تونه با ایندکس های مناسب البته با Releation با این تعداد رکورد در یک جدول کار بکنه .
    من یه ایندکس روی جدول 40000 رکوردی گذاشتم و دستور Select رو روی آن اجر کردم اصلا می تونم بگم طول نکشید . ولی همون query رو با order به کار بردن و حدود 4 الی 5 ثانیه طول کشید تا اجرا تمام بشه .
    می تونم بپرسم چرا.

  7. #7
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    سلام
    Select را اینجا قرار دهید

  8. #8

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    SELECT noskhe.id, noskhe.rank, noskhe.serialbimeh, noskhe.meli, noskhe.codebimeh, noskhe.noskhedate, noskhe.nf AS illname,noskhe.sumdrug,noskhe.drug, Doctors.doctorcode, Doctors.nf AS doctorname, suborganize.oname, organize.name, noskhe.suborganizeid, organize.pill * noskhe.sumdrug / 100 AS illdrug, organize.porg * noskhe.sumdrug / 100 AS orgdrug, organize.organizeid, noskhe.codepage FROM noskhe INNER JOIN Doctors ON noskhe.doctorcode = Doctors.doctorcode INNER JOIN suborganize ON noskhe.suborganizeid = suborganize.suborganizeid INNER JOIN organize ON suborganize.organizeid = organize.organizeid WHERE
    (noskhe.dscode = @dscode) "))

  9. #9

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    کافیه فقط یه order barash bezaram

  10. #10

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    لطفا راجع به ایندکس ها بیشتر بگید و من چطور ایندکس رو مدیریت کنم . و کی بسازم اگر یک بار بسازم برای همیشه کافیه و همیشه رکوردها بر حسب اندکس حساب می شوند.
    من نظرم اینه که در هنگام خارج شدن هر 100 تغییر در اضافه کردن رکورد ها ایندکس قبلی رو پاک کنم و ایندکس جدید بسازم

  11. #11

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    نقل قول نوشته شده توسط aloneman2005 مشاهده تاپیک
    لطفا راجع به ایندکس ها بیشتر بگید و من چطور ایندکس رو مدیریت کنم . و کی بسازم اگر یک بار بسازم برای همیشه کافیه و همیشه رکوردها بر حسب اندکس حساب می شوند.
    من نظرم اینه که در هنگام خارج شدن هر 100 تغییر در اضافه کردن رکورد ها ایندکس قبلی رو پاک کنم و ایندکس جدید بسازم
    طبق کوئری که پست کردین یک ایندکس طراحی و ایجاد کردم. لطفا در کوئری آنالیز ابتدا دستور SET STATISTICS IO ON را تایپ و اجرا نموده سپس کوئری را یک بار اجرا کرده و نتیجه ای که مربوط به تعداد خوانده شدن جدول هست را کپی کرده، سپس عبارت CREATE INDEX زیر را روی بانک مورد نظر اجرا کنید و دوباره کوئری را اجرا کنید و همان اطلاعات مربوط به IO را کپی کنید و در این تاپیک پست کنید.

    یعنی به این شکل:
    SET STATISTICS IO ON;
    SELECT noskhe.id,
    noskhe.rank,
    noskhe.serialbimeh,
    noskhe.meli,
    noskhe.codebimeh,
    noskhe.noskhedate,
    noskhe.nf AS illname,
    noskhe.sumdrug,
    noskhe.drug,
    noskhe.suborganizeid,
    noskhe.codepage

    Doctors.doctorcode,
    Doctors.nf AS doctorname,

    suborganize.oname,
    organize.name,
    organize.pill * noskhe.sumdrug / 100 AS illdrug,
    organize.porg * noskhe.sumdrug / 100 AS orgdrug,
    organize.organizeid,
    FROM noskhe
    INNER JOIN Doctors
    ON noskhe.doctorcode = Doctors.doctorcode
    INNER JOIN suborganize
    ON noskhe.suborganizeid = suborganize.suborganizeid
    INNER JOIN organize
    ON suborganize.organizeid = organize.organizeid
    WHERE (noskhe.dscode = @dscode)
    -------------
    PRINT '---==============================================='
    ------------
    CREATE NONCLUSTERED INDEX IX0 ON noskhe (dscode) INCLUDE (doctorcode, id, rank, serialbimeh, meli, codebimeh, noskhedate
    ,nf,sumdrug,drug,suborganizeid,codepage)
    GO
    ---------------
    SELECT noskhe.id,
    noskhe.rank,
    noskhe.serialbimeh,
    noskhe.meli,
    noskhe.codebimeh,
    noskhe.noskhedate,
    noskhe.nf AS illname,
    noskhe.sumdrug,
    noskhe.drug,
    noskhe.suborganizeid,
    noskhe.codepage

    Doctors.doctorcode,
    Doctors.nf AS doctorname,

    suborganize.oname,
    organize.name,
    organize.pill * noskhe.sumdrug / 100 AS illdrug,
    organize.porg * noskhe.sumdrug / 100 AS orgdrug,
    organize.organizeid,
    FROM noskhe
    INNER JOIN Doctors
    ON noskhe.doctorcode = Doctors.doctorcode
    INNER JOIN suborganize
    ON noskhe.suborganizeid = suborganize.suborganizeid
    INNER JOIN organize
    ON suborganize.organizeid = organize.organizeid
    WHERE (noskhe.dscode = @dscode)
    ----------------
    PRINT '--=================================='
    ---------------
    SET STATISTICS IO OFF;
    وبلاگ من (Advanced SQL Querying)

  12. #12
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: سلام نظرسنجی در مورد حل یک مساله

    سلام
    Select این باشد :

    SELECT noskhe.id,
    noskhe.rank,
    noskhe.serialbimeh,
    noskhe.meli,
    noskhe.codebimeh,
    noskhe.noskhedate,
    noskhe.nf AS illname,
    noskhe.sumdrug,noskhe.drug,
    Doctors.doctorcode,
    Doctors.nf AS doctorname,
    suborganize.oname, organize.name,
    noskhe.suborganizeid,
    organize.pill * noskhe.sumdrug / 100 AS illdrug,
    organize.porg * noskhe.sumdrug / 100 AS orgdrug,
    organize.organizeid,
    noskhe.codepage
    FROM noskhe
    Left JOIN Doctors ON noskhe.doctorcode = Doctors.doctorcode
    Left JOIN suborganize ON noskhe.suborganizeid = suborganize.suborganizeid
    Left JOIN organize ON suborganize.organizeid = organize.organizeid
    WHERE noskhe.dscode = @dscode

    و این ایندکسها ایجاد شوند :

    noskhe --> dscode
    Doctors --> doctorcode
    suborganize --> suborganizeid
    organize --> organizeid

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

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