نکات کاربردی

طبقه بندی موضوعی

آخرین مطالب

۲۱ مطلب با موضوع «db» ثبت شده است

collection.find(eq("item", null));

دستور فوق  در mongodb دو عملیات پوشش میده:

۱- فیلد "item" وجود داشته باشه و مقدارش null باشه.

۲- فیلد "item" وجود نداشته باشه


Query for Null or Missing Fields

behrad nasehi
۱۹ ارديبهشت ۰۱ ، ۱۲:۳۴ موافقین ۰ مخالفین ۰ ۰ نظر

 

 

Collections in MongoDB is equivalent to the tables in RDBMS.
Documents in MongoDB is equivalent to the rows in RDBMS.
Fields in MongoDB is equivalent to the columns in RDBMS.

 

 

Table vs Collection

Mapping Relational Databases to MongoDB

 

behrad nasehi
۰۶ تیر ۰۰ ، ۰۹:۰۲ موافقین ۰ مخالفین ۰ ۰ نظر
  • Querydsl

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

به جای نوشتن درخواست ها به صورت رشته های inline یا انتقال آنها به فایل های XML، آنها می توانند از طریق یک API ساده و روان مانند Querydsl ساخته شوند.


  • برای مثال مزایای استفاده از API روان در مقایسه با رشته های ساده
  1. تکمیل کد در IDE
  2. انواع و خواص دامنه را می توان بصورت ایمن ارجاع داد.
  3. اصلاح تغییرات در انواع دامنه بهتر انجام می شود.

  • Querydsl برای نگهداری مطمین پرس و جوهای HQL متولد شد.
  • ساختار افزایشی پرس و جوهای HQL نیازمند پیوند رشته است و نتیجه را در خواندن کد سخت می کند. منابع نامناسب برای انواع و خواص دامنه از طریق رشته های ساده، مسئله دیگری با ساختار HQL مبتنی بر String بود.
  • با تغییر دامنه مدل ایمنی نوع مزایای زیادی را در توسعه نرم افزار به ارمغان می آورد. تغییرات دامنه به طور مستقیم در نمایش داده ها منعکس شده است و تکمیل خودکار در ساخت پرس و جو باعث ایجاد سریعتر و ایمن تر ساخت پرس و جو می شود.

Querydsl Reference Guide

behrad nasehi
۱۷ آذر ۹۷ ، ۱۰:۴۴ موافقین ۰ مخالفین ۰ ۰ نظر

A scope is a module: a stored procedure, trigger, function, or batch

SCOPE_IDENTITY


behrad nasehi
۱۴ تیر ۹۷ ، ۱۳:۲۰ موافقین ۰ مخالفین ۰ ۰ نظر

کشیده می‌تواند با نویسهٔ کشیدگی ( ـ ) (که با نام تطویل نیز شناخته می‌شود) یا یک مجموعه نشان‌ها که برای پیاده‌سازی کشیدگی در قلم استفاده می‌شود، ایجاد شود.

استانداردهای یونیکد کد نقطهٔ U+0640 را با عنوان «تطویل عربی» اختصاص داده است.

این نویسه را در صفحه‌کلید استاندارد فارسی با Shift+- و در صفحه‌کلید غیراستاندارد فارسی و سایر صفحه‌کلیدهای زبان‌های دیگر با Shift+J وارد می‌کنند.

برای حذف کارکتر "کشیده" میتوان از کد Delete_ARABIC_TATWEEL.sql استفاده کنیم.

کشیده

Unicode Character 'ARABIC TATWEEL' (U+0640)

behrad nasehi
۰۳ ارديبهشت ۹۷ ، ۰۹:۵۴ موافقین ۰ مخالفین ۰ ۱ نظر

Incorrect usage of const UDF

It is not recommended to use a UDF that returns a const value in JOIN or WHERE clauses or in a select list – it is better to store the UDF value in a variable.

behrad nasehi
۲۷ فروردين ۹۷ ، ۱۱:۵۹ موافقین ۰ مخالفین ۰ ۰ نظر

The float and real data types are known as approximate data types. The behavior of float and real follows the IEEE 754 specification on approximate numeric data types.

Approximate numeric data types do not store the exact values specified for many numbers; they store an extremely close approximation of the value. For many applications, the tiny difference between the specified value and the stored approximation is not noticeable. At times, though, the difference becomes noticeable. Because of the approximate nature of the float and real data types, do not use these data types when exact numeric behavior is required, such as in financial applications, in operations involving rounding, or in equality checks. Instead, use the integer, decimal, money, or smallmoney data types.

Avoid using float or real columns in WHERE clause search conditions, especially the = and <> operators. It is best to limit float and real columns to > or < comparisons.

The IEEE 754 specification provides four rounding modes: round to nearest, round up, round down, and round to zero. Microsoft SQL Server uses round up. All are accurate to the guaranteed precision but can result in slightly different floating-point values. Because the binary representation of a floating-point number may use one of many legal rounding schemes, it is impossible to reliably quantify a floating-point value
https://technet.microsoft.com/en-us/library/ms187912(v=sql.105).aspx

گروه تخصصی Sql Server


کلا در sql نوع های عددی رو به دو دسته تقسیم می کنیم دسته اول که بهشون approximate data types میگیم مانند float و real
به این معنا که عددی که شما قصد ذخیره اون در فیلدی با ابن نوع رو دارین، به صورت دقیق ذخیره نمیشه و یه تخمین بسیار نزدیک به اون ذخیره می شود
و اما سایر نوع های داده ای عددی integer, decimal, money, وsmallmoney و ... بر خلاف نوع داده ای float - real دقیقا مقدار عددی وارد شده رو ذخیره می کنند.

کاربرد Decimal - Numeric , ... :
1-زمانی که شما نیاز به انجام محاسبات دقیق دارید. برنامه های حسابداری - مالی - انبار و ...
2-استفاده از این ستون در شرط Where و عملگرهای = and <>

کاربرد نوع داده ای Float - Real:
دقت کنید زمانی که نیاز به نگهداری مقادیر اعشاری در یک جدول باشد دو مفهوم مطرح می شود:
Precision: تعداد کل ارقامی که یک نوع داده ای نگهداری می کند
Scale: تعداد ارقامی که در سمت راست (ارقام صحیح) قرار میگیرند

دو نوع داده ای numeric , decimal مقدار Precision برابر با 38 می باشد. بنابراین اگر نیاز به نگهداری مقادیری در جدولتون دارین که تعداد ارقام اون از 38 بیشتر باشد این نوع های داده ای مناسب هستند.

نتیجه گیری:
از نوع داده ای decimal و numeric زمانی که دقیق بودن اعداد و محاسبات برای شما مهم و حیاتی هستند استفاده کنید
از نوع های داده ای Flat ,Real در مقایسه ها (= و < و >) در شرط where استفاده نکنید
behrad nasehi
۲۳ فروردين ۹۷ ، ۱۳:۴۷ موافقین ۰ مخالفین ۰ ۰ نظر

بایستی برای ستون هایی که مقادیر فارسی ذخیره میکنند از Collationزیر استفاده کنیم:


Persian_String NVARCHAR(max) COLLATE Persian_100_CI_AI

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

behrad nasehi
۲۶ دی ۹۶ ، ۱۵:۴۵ موافقین ۰ مخالفین ۰ ۰ نظر

یکی از دلایل خطا میتواند در اختلاف ستون CheckpointLSN در فول بکاپ با ستون DatabaseBackupLSN در دیفرنشیال بکاپ باشد.


بایستی مقدار CheckpointLSN در فول بکاپ با ستون DatabaseBackupLSN در دیفرنشیال بکاپ برابر باشد.


اگر این دو عدد مغایر هستند بمعنای این است که فول بکاپ دیگری انجام شده.


دستور نمایش فیلدهای فوق بشکل زیر است:

RESTORE HEADERONLY   FROM DISK = N'C:\AdventureWorks-FullBackup.bak'; 



Full&Diff


Backup chain

behrad nasehi
۲۴ دی ۹۶ ، ۱۶:۲۷ موافقین ۰ مخالفین ۰ ۱ نظر

You need CROSS APPLY not join.

The definition of table expressions involved in joins must be stable. I.e. They can't be correlated such that the table expression means something different dependant on the value of a row in another table.

select f.ID, f.Desc, u.Field1, u.Field2
from Foo f 
Cross apply ut_FooFunc(f.ID, 1) u
where f.SomeCriterion = ...

How to join a table with a table valued function?


behrad nasehi
۱۱ مهر ۹۶ ، ۱۰:۴۹ موافقین ۰ مخالفین ۰ ۰ نظر