الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قواعد البيانات الموزعة

بدأه mkyh86 في 6 سبتمبر 2013 · 7 رد · 1,783 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ممكن شرح كيفية عمل قاعدة بيانات موزعة وكيفية ربط الجداول في قاعدتين بيانات مختلفتين 

استخدام فجول بيسك 2010 و sql server

 

يرجى مساعدتي

 

مع الشكر والتقدير

#2

انظر هذا الكود استعلام من قاعدتين بيانات مختلفتين

select main.nCode,main.sName,sub.sTel,subAddress
from db_1.dbo.tableMainData as main inner join db_2.dbo.SubData as sub 
	on
	main.nCode=sub.Id
#3
KARIMSOFT كتب:

 

انظر هذا الكود استعلام من قاعدتين بيانات مختلفتين

select main.nCode,main.sName,sub.sTel,subAddress
from db_1.dbo.tableMainData as main inner join db_2.dbo.SubData as sub 
	on
	main.nCode=sub.Id

مشكور استاذ على الرد بس ممكن شرح يوضح كيفية ربط السيرفرين يعني عن طريف الفجول بيسك اربط الجداول

 

مثلا لو كان عندي السيرفر الاول اسمة m1 والسيرفر الثاني m2

قاعدة بيانات السيرفر m1 اسمها db1  اسم الجدولT1 والحقول   (ID, Name,Old)

قاعدة بيانات السيرفر m2 اسمها db2 اسم الجدولT2 والحقول (ID,adress_home,street)

وانا مشكور الك استاذ اذا ممكن اتجاوبني...

تم تعديل هذه المشاركة بواسطة mkyh86 في 8 سبتمبر 2013 في 19:07

#4

الكود الذي بالعلي قاعدتي بيانات علي نفس الخادم ولكن مشكلتك تحل بالlinked servers

look this

http://www.techrepublic.com/blog/datacenter/how-do-i-query-foreign-data-using-sql-servers-linked-servers/133

http://stackoverflow.com/questions/720339/how-to-select-data-of-a-table-from-another-database-in-sql-server

http://sqlmag.com/sql-server/connecting-sql-server-and-oracle-using-linked-servers

http://stackoverflow.com/questions/14345171/how-to-get-data-from-two-databases-in-two-servers-with-one-select-statement

http://www.sql-server-helper.com/error-messages/msg-117.aspx

1
#5

اشكرك اخي والله يجازيك الف خير... مشكور

#6

سلامات غالي:

قواعد البيانات الموزعة تختلف أختلافا كثيرا عن قواعد البيانات العادية

 

ومعقدة

 

ويمكن لقواعد البيانات العادية ان تفي بالغرض   للقيام بالاعمال الحسابية.....

#7

سوف اقول لك ما اعرف حيث انني استعملتها مرتين فقط في عملي

ان استعمال قواعد البيانات الموزعة (Linked or embedded server) مفيده عندما تريد ان تعمل استعلام بين جدولين من نوعين مختلفين من database source مثل جدول موجود على sql server وجدول موجود في access او بين sql server و excel

تسنطيع استعمالها بالطبع بين اثنين sql server اذا اردت ذلك ولكني لم اعد استعملها نظرا لتعقيد عملها و تعقيد الاستعلام وايضا بطأها.

 

اولا لعمل Linked server افتح microsoft management studio

SERVER OBJECT << Linked Servers

right-click and add the linked server for the second server you have

How to Config Linked Servers in a Minute

عندما تنجح في ذلك سوف يظهر ال server الثاني وسوف تستطيع ان تشاهد الجداول

 

تستطيع ان تعمل استعلام بهذه الطريقة

select  t1.name ,t1.old , t2.address, t2.street
from [first_server_name].[first_db_name].[dbo].[table_1] t1
	Left join [second_server_name].[second_db_name].[dbo].[table_2] t2 on t1.id = t2.id

second_server_name is the name of LINKED SERVER you create

طريقتي المفضلة او نصيحتي اذا اردت رايي هو عدم استعمالها لسبب واحد وهو البطأ. اما لماذا هي بطيئة فانه عندما تعمل join بين جدول1 على server1 مع جدول2 علي server2 لتعمل ال join عليها ان تجلب كل السجلات من جدول2 server2 اولا ثم تعمل join ولو كانت السجلات كبيرة لنقل 1,000,000 سجل فانك ستجلبهم كلهم لاختيار سجل واحد بما يناسب شرط ال join

في الحالة العدية عندما تعمل استعلام يحتوي على على where فانك ستحصل على filter قبل سجل واحد

 

لذلك انا افضل ان اعمل استعلامان مختلفان لكل سيرفر لكل جدول وبذلك احصل على dt1 و dt2 في vb.net باستعمال ال where و ليس  join وثم استعمل Linq on Datatable لاخراج النتيجة التي اربد

تم تعديل هذه المشاركة بواسطة samir ibrahim في 20 سبتمبر 2013 في 21:38

1

Samir Ibrahim

VFP Blog

VB.NET Blog

#8

مشكور احسنت الله يوفقك

مواضيع مشابهة