คำถามติดแท็ก sql-server

SQL Server เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์จาก Microsoft

22
ขั้นตอนการจัดเก็บวิธีปฏิบัติที่ไม่ดีที่หนึ่งใน บริษัท ที่ปรึกษาด้านไอทีรายใหญ่ที่สุดในโลก?
ฉันทำงานในโครงการหนึ่งใน บริษัท ให้คำปรึกษาด้านไอทีชั้นนำของโลกและได้รับการบอกเล่าจาก DBA ว่าวิธีปฏิบัติที่ดีที่สุดในการจัดเก็บของรัฐไม่ใช่วิธี "ปฏิบัติที่ดีที่สุด" ตรงกันข้ามกับทุกสิ่งที่ฉันเรียนรู้ ขั้นตอนการจัดเก็บจะช่วยให้คุณสามารถนำโค้ดกลับมาใช้ใหม่และการห่อหุ้ม (สองเสาหลักของการพัฒนาซอฟต์แวร์) การรักษาความปลอดภัย (คุณสามารถให้ / เพิกถอนการอนุญาตในแต่ละโปรแกรมที่เก็บไว้) ปกป้องคุณจากการโจมตีด้วยการฉีด SQL เริ่มต้นด้วย SQL Server 2008 ที่แม้แต่แบบสอบถาม SQL ทั่วไปจะถูกคอมไพล์หากมีการเรียกใช้เวลาเพียงพอ) เรากำลังพัฒนาแอพที่ซับซ้อนโดยใช้วิธีการพัฒนาซอฟต์แวร์ Agile ทุกคนคิดเหตุผลที่ดีว่าทำไมพวกเขาไม่ต้องการใช้ procs ที่เก็บไว้? ฉันเดาว่า DBAs ไม่ต้องการรักษา procs ที่เก็บไว้ แต่ดูเหมือนว่าจะมีวิธีเชิงลบมากเกินไปที่จะพิสูจน์การตัดสินใจในการออกแบบ

3
การสร้างการเชื่อมต่อฐานข้อมูล - ทำเพียงครั้งเดียวหรือแต่ละแบบสอบถาม
ในขณะนี้ฉันสร้างการเชื่อมต่อฐานข้อมูลเมื่อหน้าเว็บของฉันถูกโหลดครั้งแรก จากนั้นฉันจะประมวลผลหน้าเว็บและเรียกใช้แบบสอบถามใด ๆ กับ conection นั้น นี่เป็นวิธีที่ดีที่สุดในการทำหรือฉันควรสร้างการเชื่อมต่อฐานข้อมูลทุกครั้งที่ฉันเรียกใช้แบบสอบถามหรือไม่ ปล. ฉันรู้สึกดีกว่าที่จะสร้างการเชื่อมต่อ 1 ครั้งและใช้งานได้ แต่ฉันไม่รู้ว่าจะทำให้เกิดปัญหาอื่น ๆ หรือไม่ ฉันใช้ C # (ASP.NET) กับ MSSQL
101 c#  database  sql-server 

3
ทำไมเราต้องใส่ N ก่อนสตริงใน Microsoft SQL Server
ฉันเรียนรู้ T-SQL จากตัวอย่างที่ฉันเห็นการแทรกข้อความในvarchar()เซลล์ฉันสามารถเขียนเฉพาะสตริงที่จะแทรก แต่สำหรับnvarchar()เซลล์ตัวอย่างทุก ๆ คำนำหน้าสตริงด้วยตัวอักษร N ฉันลองใช้แบบสอบถามต่อไปนี้บนตารางที่มีnvarchar()แถวและทำงานได้ดีดังนั้นคำนำหน้า N จึงไม่จำเป็น: insert into [TableName] values ('Hello', 'World') เหตุใดสตริงจึงถูกนำหน้าด้วย N ในทุกตัวอย่างที่ฉันเห็น ข้อดีหรือข้อเสียของการใช้คำนำหน้านี้คืออะไร

10
การใช้ GUID เป็นคีย์หลัก
โดยทั่วไปฉันใช้รหัสการเพิ่มอัตโนมัติเป็นคีย์หลักในฐานข้อมูล ฉันพยายามเรียนรู้ประโยชน์ของการใช้ GUID ฉันได้อ่านบทความนี้: https://betterexplained.com/articles/the-quick-guide-to-guids/ ฉันรู้ว่า GUID เหล่านี้ใช้เพื่อระบุวัตถุในระดับแอปพลิเคชัน พวกเขายังเก็บไว้เป็นคีย์หลักในระดับฐานข้อมูล ตัวอย่างเช่นสมมติว่าฉันมีคลาสต่อไปนี้: public class Person { public GUID ID; public string Name; .. //Person Methods follow } ว่าฉันต้องการสร้างคนใหม่ในหน่วยความจำแล้วใส่คนลงในฐานข้อมูล ฉันขอทำสิ่งนี้ได้ไหม Person p1 = new Person(); p1.ID=GUID.NewGUID(); PersonRepository.Insert(p1); สมมติว่าฉันมีฐานข้อมูลที่ประกอบด้วยแถวนับล้านแถวที่มี GUID เป็นคีย์หลัก สิ่งนี้จะไม่ซ้ำกันหรือไม่ ฉันเข้าใจแม้แต่ GUID อย่างถูกต้องหรือไม่ ผมอ่านบทความนี้ก่อนหน้านี้: http://enterprisecraftsmanship.com/2014/11/15/cqs-with-database-generated-ids/ มันทำให้ฉันสับสนเล็กน้อยตามที่ปรากฏเพื่อแนะนำสื่อกลางที่มีความสุขระหว่าง GUID และจำนวนเต็มเป็นคีย์หลัก แก้ไข 11/06/18 ฉันเชื่อว่า Guids …

2
NoSQL ภายใน SQL Server
คำถามนี้ไม่เกี่ยวกับความแตกต่างระหว่าง SQL และ NoSQL ฉันกำลังมองหาเหตุผลบางอย่างสำหรับบางสิ่งบางอย่างที่ไม่สมเหตุสมผลกับฉันในขณะนี้ (อาจเป็นเพราะการขาดความเข้าใจหรือการชื่นชมของฉัน) เราได้เริ่มโครงการใหม่ตั้งแต่เริ่มต้นโดยใช้ MVC5, Entity Framework 6 code ก่อนและ SQL Server 2008 เมื่อสถาปนิกตรวจสอบ schema ฐานข้อมูลมีการระบุว่าคีย์ต่างประเทศทั้งหมดและข้อ จำกัด อื่น ๆ ควรถูกลบออกเพราะนี่คือ "ตรรกะทางธุรกิจ" และ ควรใช้ภายในเลเยอร์ธุรกิจของรหัสแอปพลิเคชัน ความคิดเห็นของฉันคือว่าคีย์ต่างประเทศเป็นส่วนหนึ่งของข้อมูล / การอ้างอิงที่สมบูรณ์และไม่ได้เลียนแบบตรรกะทางธุรกิจจริงๆ ฉันเห็นตรรกะทางธุรกิจเป็นกระบวนการและการตรวจสอบความถูกต้องซึ่งควบคุมว่าจะใช้การอ้างอิงแบบใด / เมื่อใด / อย่างไร / ทำไม ฉันสามารถเข้าใจได้ว่าข้อ จำกัด ที่ไม่เหมือนใครนั้นเป็นกระบวนการทางธุรกิจที่มีเนื้อหา แต่สำหรับฉันนี่เป็นการเติมเต็มตรรกะและเป็นส่วนหนึ่งของความซื่อสัตย์ อาร์กิวเมนต์ที่สองคือเป้าหมายคือการใช้วิธี NoSQL กับข้อมูล ฉันพบสิ่งผิดปกติและผิดพลาดจริง ๆ นี้: พิจารณาการใช้ SQL-Server 2008, ความจำเป็นในการรายงาน, …
28 sql  sql-server  nosql 

1
เข้าร่วมกับภายในเข้าร่วมและเต็มรูปแบบเข้าร่วมด้านนอก
ฉันรู้ว่ามีความแตกต่างระหว่างINNER JOINและFULL OUTER JOINผมสามารถมองเห็นได้ แต่สิ่งที่แตกต่างระหว่างทั้งสองต่อไปนี้: JOIN ... ON...และINNER JOIN...ON...และยังคงยังJOIN...ON...VSFULL OUTER JOIN...ON... เหตุผลที่เป็นฉันคิดว่าอาจจะใช้เพียงแค่JOINmessing up แบบสอบถามที่ฉันทำงานที่มีการโพสต์บนดังนั้นเชื่อมโยงไปยังคำถามที่นี่ ดังนั้นโดยพื้นฐานแล้วอะไรคือความแตกต่างทางไวยากรณ์ระหว่างชุดปฏิบัติการจริงของตัวเอง ขอขอบคุณ,
27 sql  sql-server 

6
ฉันควรใช้ขั้นตอนการจัดเก็บเมื่อใด
ถ้าฉันมีตรรกะทางธุรกิจทั้งหมดของฉันในรหัสและใช้ประโยชน์จาก Entity Framework ในสถานการณ์ใด (ถ้ามี) ฉันจะย้ายตรรกะทางธุรกิจบางอย่างไปยังขั้นตอนการจัดเก็บดีกว่าแทนที่จะเก็บไว้ในรหัสทั้งหมดหรือไม่ เพื่อความชัดเจนฉันหมายถึงร่วมกับการตั้งค่าปัจจุบัน (ตรรกะทางธุรกิจในรหัส) ไม่ใช่แทนที่จะเป็น ฉันได้เห็นคำถามคล้าย ๆ กันหลายข้อที่ถามถึงข้อดีและข้อเสียของการมีตรรกะทางธุรกิจทั้งหมดในขั้นตอนการจัดเก็บ แต่ฉันไม่พบอะไรมากเกี่ยวกับการใช้ขั้นตอนการจัดเก็บเท่าที่จำเป็นสำหรับตรรกะกรณีขอบ ในรหัส ถ้ามันสร้างความแตกต่างฉันกำลังใช้ MSSQL และ Entity Framework นี่คือสถานการณ์ที่ฉันใช้โพรซีเดอร์ที่เก็บไว้ก่อนหน้านี้: รายงานที่ซับซ้อนซึ่งใช้เวลาไม่กี่นาทีในการเรียกใช้ (นี่คือหน้าเว็บในแอปพลิเคชัน) ฉันพบว่าฉันสามารถเขียน SQL ที่มีประสิทธิภาพมากขึ้น (ใช้เวลาเพียงไม่กี่วินาทีในการเรียกใช้) กว่าที่ LINQ จัดหาให้ เว็บแอปพลิเคชันจำเป็นต้องอ่านและเขียนลงในตารางไม่กี่ตารางในฐานข้อมูลแยกต่างหากซึ่งมีข้อมูลที่ละเอียดอ่อนจำนวนมากซึ่งไม่เกี่ยวข้องกับแอปพลิเคชัน แทนที่จะให้สิทธิ์เข้าถึงทุกสิ่งฉันใช้กระบวนงานที่เก็บไว้ซึ่งทำสิ่งที่ต้องการเท่านั้นและส่งคืนข้อมูลที่ จำกัด เท่านั้น เว็บแอปพลิเคชันสามารถเข้าถึงขั้นตอนการจัดเก็บนี้เท่านั้นโดยไม่ต้องเข้าถึงตารางใด ๆ เป็นต้น โพสต์อื่นที่ฉันได้ดูก่อนถามคำถามนี้: ขั้นตอนการจัดเก็บวิธีปฏิบัติที่ไม่ดีที่หนึ่งใน บริษัท ที่ปรึกษาด้านไอทีรายใหญ่ที่สุดในโลก? ข้อดีข้อเสียของการถือตรรกะทางธุรกิจทั้งหมดในขั้นตอนการจัดเก็บในเว็บแอปพลิเคชัน /programming/15142/what-are-the-pros-and-cons-to-keeping-sql-in-stored-procs-versus-code /dba/2450/what-are-the-arguments-against-or-for-putting-application-logic-in-the-database/2452#2452 เมื่อใดที่จะไม่ใช้ ORM และชอบวิธีการจัดเก็บ?

2
วิธีที่ดีที่สุดในการใช้การค้นหาที่ถูกกรอง
ฉันอยากจะถามคุณความคิดเห็นของคุณเมื่อต้องใช้แบบฟอร์มการค้นหาที่กรองแล้ว ลองจินตนาการถึงกรณีต่อไปนี้: 1 ตารางขนาดใหญ่พร้อมคอลัมน์จำนวนมาก มันอาจเป็นสิ่งสำคัญที่จะบอกว่า SQL Server นี้ คุณต้องใช้แบบฟอร์มเพื่อค้นหาข้อมูลในตารางนี้และในแบบฟอร์มนี้คุณจะมีช่องทำเครื่องหมายหลายช่องที่อนุญาตให้คุณคิดค่าใช้จ่ายในการค้นหานี้ ตอนนี้คำถามของฉันที่นี่ข้อใดต่อไปนี้ควรเป็นวิธีที่ดีที่สุดในการใช้การค้นหา สร้างกระบวนงานที่เก็บไว้ด้วยแบบสอบถามภายใน โพรซีเดอร์ที่เก็บไว้นี้จะตรวจสอบว่าพารามิเตอร์ได้รับจากแอปพลิเคชั่นหรือไม่และในกรณีที่พวกเขาไม่ได้รับไวด์การ์ดจะถูกใส่ในแบบสอบถาม สร้างแบบสอบถามแบบไดนามิกที่สร้างขึ้นตามสิ่งที่ได้รับจากแอปพลิเคชัน ฉันถามสิ่งนี้เพราะฉันรู้ว่า SQL Server สร้างแผนการดำเนินการเมื่อสร้างโพรซีเดอร์ที่เก็บไว้เพื่อปรับประสิทธิภาพให้เหมาะสมอย่างไรก็ตามโดยการสร้างเคียวรีแบบไดนามิกภายในโพรซีเดอร์ที่เก็บไว้เราจะเสียสละประสิทธิภาพที่ได้รับจากแผนปฏิบัติ โปรดบอกฉันว่าอะไรคือแนวทางที่ดีที่สุดในการต่อต้านของคุณ


5
การควบคุมเวอร์ชันด้วย SQL Server
ฉันเริ่มโครงการใหม่และใช้ SVN (กับ Tortoise) เป็นระบบควบคุมเวอร์ชันของฉัน ฉันสงสัยว่ามันเป็นไปได้ที่จะรักษาฐานข้อมูล SQL Server ด้วยระบบเดียวกันหรือไม่ ฉันต้องการรุ่นตาราง / ฟังก์ชั่น / มุมมอง / procs / ทริกเกอร์ / ฯลฯ แต่ไม่ใช่ข้อมูลของฉันเพราะทุกอย่างจะเป็นข้อมูลทดสอบอยู่ดี ฉันไม่แน่ใจจริงๆวิธีการตั้งค่านี้ ฉันเจอตัวเลือกน้อย แต่ฉันอยากจะรู้ว่ามีอะไรที่ฉันขาดหายไปหรือเปล่าและถ้ามีไกด์หรือมีอะไรบางอย่างที่จะช่วยให้ฉันทำงานได้ ฉันเคยเห็นและได้ยินเกี่ยวกับ Red Gate แล้ว แต่ฉันกำลังมองหาบางสิ่งบางอย่างฟรี (หรืออย่างน้อยก็ราคาถูกมาก) ฉันรู้ว่าฉันสามารถเขียนบางสิ่งบางอย่างด้วยตัวเองได้ แต่ฉันไม่ได้พยายามที่จะใช้เวลากับมัน สิ่งหนึ่งที่ผมได้เจอเป็นแพคเกจที่มาเปิดใส่กันเรียกว่าScriptDB4Svn มีใครเคยใช้อันนี้มาก่อนหรือไม่ ดีไหม มันสามารถทำสิ่งที่ฉันต้องทำและมันค่อนข้างง่ายที่จะได้รับการติดตั้ง?

2
SQL Server และ Mongo สามารถใช้ร่วมกันได้หรือไม่
เรามีเว็บไซต์ข่าวขนาดใหญ่ที่มีการเข้าชมเว็บสูง สถาปัตยกรรมเป็น DB - Repo Layer ที่คุณมักจะเห็น - Services Layer - Asp.Net MVC ปัญหาที่เราเห็นคือเรื่องประสิทธิภาพการอ่าน ปรากฎว่าทุกสิ่งในโดเมน DDD นี้เป็นสิ่งที่ยอดเยี่ยมในทางทฤษฎีสำหรับกฎเกณฑ์ทางธุรกิจ แต่ทำให้ชีวิตยากขึ้นเมื่อต้องเพิ่มประสิทธิภาพการอ่าน เป็นวิธีแก้ปัญหาฉันกำลังพิจารณาสิ่งใหม่ทั้งหมด (สำหรับเรา): การใช้ noSQL ฉันต้องการใช้ฐานข้อมูล noSQL สำหรับข้อมูลที่นำเสนอบนเว็บไซต์ของเรา เราไม่สามารถกำจัด SQL Server ของเราได้ (อย่างน้อยก็ไม่ทุกเวลาเร็ว ๆ นี้) แต่สำหรับผมแล้วดูเหมือนว่าขั้นตอนการปฏิบัติจะใช้ Mongo เป็นฐานข้อมูลแบบสอบถามสำหรับการพัฒนาใหม่ทั้งหมด คำถามของฉันคือไม่ว่าจะเป็นไปได้ที่จะใช้ SQL Server เป็นฐานข้อมูลของคุณของการบันทึกและ Mongo เป็นฐานข้อมูลการค้นหาของคุณกัน ? ดังนั้นเมื่อหนึ่งในบรรณาธิการของเราอัปเดตบันทึกข้อมูลจะถูกเก็บไว้ใน SQL Server นี่เป็นสิ่งจำเป็นเนื่องจากมีรหัสดั้งเดิมมากเกินไปที่ไม่สามารถเขียนซ้ำได้ในชั่วข้ามคืน แต่เมื่อผู้ดูบนเว็บไซต์ดูบทความหรือรายการบทความฉันต้องการใช้ประโยชน์จากประสิทธิภาพของ Mongo กับ SQL …
14 sql-server  nosql  cqrs  mongo 

13
SQL Devs สร้างแบบสอบถาม SQL โดยใช้ SQL Query Designers หรือไม่
ฉันแค่อยากรู้ว่า SQL Devs เขียนโค้ดด้วยมือเปล่าหรือพวกมันใช้ประโยชน์จากนักออกแบบคิวรี่ภาพเพื่อสร้างคิวรี? ในกรณีส่วนใหญ่ตัวออกแบบคิวรีสามารถสร้างคิวรีที่ไม่ซับซ้อนได้ใช่หรือไม่ (ฉันเป็น WinForms dev เพิ่งเริ่มต้นกับ SQL Server)
13 sql  sql-server 

1
การจับคู่ชื่อบางส่วนในล้านเรคคอร์ด
เราได้พัฒนาแอพพลิเคชั่นบนเว็บสำหรับการจับคู่ชื่อ มันทำงานโดยการแบ่งชื่อออกเป็นส่วน ๆ และค่าSoundexของแต่ละส่วนจะถูกเก็บไว้ในฐานข้อมูล เมตริก Levenshtein ระยะทางที่ใช้ในการสมัครเปอร์เซ็นต์การจับคู่ของเสียงเช่นเดียวกับการสะกดคำกับชื่อที่กำหนด ที่รันไทม์เราโหลดเร็กคอร์ดทั้งหมดลงในหน่วยความจำและใช้ระยะทาง Levenshtein กับค่า Soundex ทั้งหมดและการสะกดคำของส่วนทั้งหมดของชื่อทั้งหมด สิ่งนี้ใช้ได้ดีในตอนแรกเพราะมีชื่อสูงสุด 20,000 ชื่อ แต่ตอนนี้ลูกค้าของเรารายหนึ่งมีชื่อ 30 ล้านชื่อ การโหลดรายการขนาดใหญ่นี้ลงในหน่วยความจำสำหรับคำขอแต่ละครั้งและการใช้การจับคู่ประเภทนี้เป็นวิธีที่น่าสมเพชโดยใช้หน่วยความจำและเวลาดำเนินการจำนวนมาก เรากำลังมองหาคำแนะนำในการค้นหาฐานข้อมูล 30 ล้านรายการขึ้นไปในอนาคตอันใกล้นี้ด้วยการจับคู่เปอร์เซ็นต์ของเสียงและการสะกดคำ ฟังก์ชั่นหลัก ผู้ใช้ปลายทางป้อนชื่อที่จะจับคู่และเปอร์เซ็นต์ขั้นต่ำ เราควรจะแสดงชื่อเหล่านั้นทั้งหมดในฐานข้อมูลที่ส่วนใดส่วนหนึ่งของชื่อตรงกับส่วนใดส่วนหนึ่งของชื่อที่กำหนดจนถึงเปอร์เซ็นต์ที่กำหนด ไม่จำเป็นต้องใช้ชื่อเต็มในการจับคู่ส่วนใดส่วนหนึ่งหากตรงกันไม่เกินเปอร์เซ็นต์ก็จะสำเร็จ ตัวอย่างเช่น. Given Name: Helen Hunt Name in DB: Holly Hunter ทั้งสองส่วนของชื่อทั้งสองไม่ตรงกันอย่างแน่นอน แต่ไม่เกินขอบเขตให้เราสมมติ 80% ดังนั้นหากผู้ใช้ป้อน 80% ดังนั้นชื่อใน DB จะต้องแสดงเป็นชื่อที่ตรงกัน

3
การใช้ SQL Server เปลี่ยนการดักจับข้อมูลด้วยสคีมาที่เปลี่ยนแปลงบ่อยครั้ง
เรากำลังพิจารณาที่จะเปิดใช้งานการจับข้อมูลการเปลี่ยนแปลงเซิร์ฟเวอร์ SQL สำหรับระบบย่อยใหม่ที่เรากำลังสร้าง มันไม่ได้เป็นเพราะเราต้องการมัน แต่เราถูกผลักดันให้มีการตรวจสอบย้อนหลังอย่างสมบูรณ์และ CDC จะแก้ปัญหานี้ได้อย่างดีด้วยความพยายามขั้นต่ำในส่วนของเรา เรากำลังติดตามกระบวนการพัฒนาที่คล่องตัวซึ่งในกรณีนี้หมายความว่าเราทำการเปลี่ยนแปลงโครงสร้างฐานข้อมูลบ่อยครั้งเช่นการเพิ่มคอลัมน์ใหม่การย้ายข้อมูลไปยังคอลัมน์อื่น ๆ ฯลฯ เราทำการทดสอบขนาดเล็กที่เราสร้างตารางเปิดใช้งาน CDC สำหรับตารางนั้นแล้วเพิ่มคอลัมน์ใหม่ลงในตาราง การเปลี่ยนแปลงในคอลัมน์ใหม่ไม่ได้ลงทะเบียนในตาราง CDC มีกลไกในการอัปเดตตาราง CDC เป็นสคีมาใหม่หรือไม่และมีวิธีปฏิบัติที่ดีที่สุดสำหรับวิธีที่คุณจัดการกับข้อมูลที่บันทึกเมื่อทำการย้ายสคีมาฐานข้อมูลหรือไม่

2
วิธีการเรียกใช้การย้ายฐานข้อมูลอย่างปลอดภัยด้วยอินสแตนซ์หลายแอป
เรามีแอปพลิเคชั่นที่ผสมผสานทั้งความรวดเร็ว (<1 วินาที) และการย้ายฐานข้อมูลที่ช้า (> 30 วินาที) ตอนนี้เรากำลังเรียกใช้การย้ายฐานข้อมูลเป็นส่วนหนึ่งของ CI แต่จากนั้นเครื่องมือ CI ของเราต้องรู้สตริงการเชื่อมต่อฐานข้อมูลทั้งหมดสำหรับแอปของเรา (ในหลาย ๆ สภาพแวดล้อม) ซึ่งไม่เหมาะ เราต้องการเปลี่ยนกระบวนการนี้เพื่อให้แอปพลิเคชันรันการย้ายฐานข้อมูลของตัวเองเมื่อเริ่มต้น นี่คือสถานการณ์: เรามีแอพพลิเคชั่นนี้หลายตัว - ประมาณ 5 ตัวในการผลิต มาเรียกพวกเขาnode1, ..., node5กัน แต่ละแอปเชื่อมต่อกับอินสแตนซ์ของ SQL Server เดียวและเราไม่ได้ใช้การปรับใช้แบบหมุนเวียน (แอพทั้งหมดจะถูกปรับใช้พร้อมกันเท่าที่ฉันรู้) ปัญหา: ว่าเรามีการโยกย้ายที่ใช้เวลานาน ในกรณีนี้node1เริ่มต้นจากนั้นเริ่มดำเนินการโยกย้าย ตอนนี้node4เริ่มและการโยกย้ายที่ใช้เวลานานยังไม่เสร็จดังนั้นจึงnode4เริ่มการโยกย้าย -> ความเสียหายของข้อมูลที่เป็นไปได้หรือไม่ คุณจะป้องกันปัญหานี้อย่างไรหรือเป็นปัญหาที่สำคัญพอที่จะกังวลได้อย่างไร ฉันกำลังคิดที่จะแก้ปัญหานี้ด้วยการล็อคแบบกระจาย AA (ใช้etcdหรืออะไรก็ได้ตามบรรทัดเหล่านั้น) โดยพื้นฐานแล้วแอพทั้งหมดพยายามที่จะได้รับการล็อคโดยมีเพียงหนึ่งในนั้นเท่านั้นที่ได้รับมันและเรียกใช้การย้ายข้อมูลจากนั้นปลดล็อค เมื่อแอปที่เหลือเริ่มต้นและเข้าสู่ส่วนที่สำคัญการโยกย้ายทั้งหมดจะถูกเรียกใช้แล้วสคริปต์การโยกย้ายก็จะออก อย่างไรก็ตามลำไส้ของฉันกำลังพูดว่า "นี่มันเกินจะต้องมีวิธีแก้ปัญหาที่ง่ายกว่า" ดังนั้นฉันจึงคิดว่าฉันจะขอให้ที่นี่เพื่อดูว่าใครมีความคิดที่ดีกว่านี้อีก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.