ผู้ดูแลฐานข้อมูล

ถามตอบสำหรับผู้เชี่ยวชาญด้านฐานข้อมูลที่ต้องการพัฒนาทักษะฐานข้อมูลและเรียนรู้จากผู้อื่นในชุมชน

1
เหตุใด COUNT หลายรายการจึงเร็วกว่าหนึ่ง SUM ด้วย CASE
ฉันอยากรู้ว่าวิธีใดในสองวิธีต่อไปนี้เร็วกว่า: 1) สามCOUNT: SELECT Approved = (SELECT COUNT(*) FROM dbo.Claims d WHERE d.Status = 'Approved'), Valid = (SELECT COUNT(*) FROM dbo.Claims d WHERE d.Status = 'Valid'), Reject = (SELECT COUNT(*) FROM dbo.Claims d WHERE d.Status = 'Reject') 2) SUMด้วยFROM--clause: SELECT Approved = SUM(CASE WHEN Status = 'Approved' THEN 1 ELSE …

5
ขนาดคุณสมบัติไม่พร้อมใช้งานสำหรับฐานข้อมูล
ฉันเพิ่งกู้คืนฐานข้อมูลเป็นอินสแตนซ์เดียวกันกับที่สำรองไว้ (SQL Server 2008 R2 Enterprise) และพบว่าฉันไม่สามารถเข้าถึงคุณสมบัติฐานข้อมูลได้ ฉันทำสิ่งต่อไปนี้แล้ว: sp_helpdbการตรวจสอบการใช้ฐานข้อมูลถูกตั้งอย่างถูกต้องโดยใช้ saการเปลี่ยนแปลงการใช้ฐานข้อมูลเพื่อ ไม่ใช่การแก้ไข เปลี่ยนเจ้าของฐานข้อมูลกลับเป็นsysadminผู้ใช้ของฉัน ไม่ใช่การแก้ไข ออกให้DBCC updateusageกับฐานข้อมูลที่ได้รับผลกระทบ ไม่ใช่การแก้ไข รันDBCC CheckDBบนสำเนาที่กู้คืนไปยังอินสแตนซ์อื่น ไม่พบความเสียหาย สำเนาที่กู้คืน (จากไฟล์สำรองเดียวกัน) ไม่ทิ้งข้อผิดพลาดใด ๆ เมื่อเข้าถึงหน้าต่างคุณสมบัติฐานข้อมูล ใครช่วยได้บ้าง ข้อความแสดงข้อผิดพลาดที่ฉันได้รับเมื่อพยายามดูคุณสมบัติคือ: ไม่สามารถแสดงกล่องโต้ตอบที่ร้องขอ (SqlMgmt) ขนาดคุณสมบัติไม่พร้อมใช้งานสำหรับฐานข้อมูล '[DBNAME]' คุณสมบัตินี้อาจไม่มีอยู่สำหรับวัตถุนี้หรืออาจไม่สามารถเรียกคืนได้เนื่องจากสิทธิ์การเข้าถึงไม่เพียงพอ (Microsoft.SqlServer.Smo) ฉันเป็นแบบsysadminนี้ อัปเดต: ตามที่แนะนำฉันได้สร้างผู้ใช้ใหม่ทำให้เป็นดูแลระบบและเปลี่ยนเจ้าของฐานข้อมูลเป็น ไม่แก้ไขอย่างน่าเสียดาย ฉันจะดูว่าการติดตามของ profiler ทำให้เกิดประโยชน์หรือไม่ อัปเดต: แอรอน - ฐานข้อมูลดั้งเดิมถูกเปลี่ยนชื่อและออฟไลน์ แต่ยังอยู่ในอินสแตนซ์นั้น การสำรองข้อมูลของฐานข้อมูลนั้นจะถูกกู้คืนโดยใช้ชื่อเดิม ชื่อไฟล์ของไฟล์ฐานข้อมูลใหม่นั้นแตกต่างจากของจริงเพราะอยู่ในโฟลเดอร์เดียวกับไฟล์ mdf / ldf ต้นฉบับ …

2
ไม่สามารถคืนค่าฐานข้อมูลเซิร์ฟเวอร์ SQL จากการสำรองข้อมูลเต็มรูปแบบการประมวลผลบันทึกล้มเหลวฐานข้อมูลในสถานะ 'กู้คืน'
ฉันกำลังพยายามตั้งค่าฐานข้อมูลเพื่อวัตถุประสงค์ในการพัฒนาบน SQL Server Developer Edition ในเครื่องของฉัน 12.0.2000.8 ฉันได้รับการสำรองฐานข้อมูลเต็มรูปแบบและมีไฟล์สำรองข้อมูลการเข้าสู่ระบบธุรกรรมเท่านั้นซึ่งถูกส่งมาให้ฉันผ่านเครือข่าย เมื่อพยายามกู้คืนจากการสำรองข้อมูลเต็มรูปแบบหลังจากผ่านไประยะหนึ่ง (อาจจะประมาณ 1 ชั่วโมงฐานข้อมูลจะมีขนาดประมาณ 270 GB) ฉันได้รับข้อผิดพลาด: System.Data.SqlClient.SqlError: เกิดข้อผิดพลาดขณะประมวลผลบันทึกสำหรับฐานข้อมูล 'ชื่อฐานข้อมูล' หากเป็นไปได้ให้เรียกคืนจากการสำรองข้อมูล หากการสำรองข้อมูลไม่พร้อมใช้งานคุณอาจจำเป็นต้องสร้างบันทึกใหม่ (Microsoft.SqlServer.SmoExtended) หลังจากนี้ db อยู่ในสถานะ 'กำลังกู้คืน .. ' ฉันต้องการเรียกใช้บางอย่าง (ได้จากคำถามนี้ ) ALTER DATABASE recovery_test_2 SET EMERGENCY; ALTER DATABASE recovery_test_2 SET SINGLE_USER; DBCC CHECKDB (recovery_test_2, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS; แต่โดยธรรมชาติแล้วฉันไม่สามารถทำได้เนื่องจากฐานข้อมูลอยู่ในสถานะ 'การเรียกคืน .. …

1
ข้อผิดพลาด: ไม่สามารถลบไฟล์ '' (ข้อผิดพลาด 2: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
ฉันได้รับข้อผิดพลาด pgAdmin III ต่อไปนี้ทุกครั้งที่ฉันกู้คืนฐานข้อมูลโดยใช้ pgAdmin III: ข้อผิดพลาด: ไม่สามารถลบไฟล์ '' (ข้อผิดพลาด 2: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว) ดูบันทึก pgAdmin การกำหนดค่าของฉัน: PostgreSQL 9.4.4 บน x86_64-unknown-linux-gnu รวบรวมโดย gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit Linux 3.19.0-26-generic # 28 ~ 14.04.1-Ubuntu SMP พุธ 12 สิงหาคม 14:09:17 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux

2
ความสัมพันธ์กับคีย์ต่างประเทศแบบมีเงื่อนไข
ขณะนี้ฉันมีรหัสต่างประเทศระหว่างสองหน่วยงานและฉันต้องการสร้างความสัมพันธ์แบบมีเงื่อนไขให้กับประเภทรายการของตารางใดตารางหนึ่ง นี่คือลำดับชั้นของตารางซึ่งทำได้ผ่านการอ้างอิง FK ตั้งแต่เด็กจนถึงผู้ปกครอง Store / \ Employees \ TransactionalStores / | \ Kiosks | BrickMortars Onlines ขณะนี้ฉันมีความสัมพันธ์ FK จากพนักงานเพื่อจัดเก็บ ALTER TABLE Employees ADD CONSTRAINT Employee_Store FOREIGN KEY (TransStoreId) REFERENCES TransactionalStores(StoreId) ฉันต้องการเพิ่มเงื่อนไข: WHERE TransactionalStores.storeType != 'ONLINE_TYPE' เป็นไปได้หรือไม่ฉันต้อง subclass TransactionalStores เป็นสองประเภทย่อยใหม่ (เช่น PhysicalStores และ VirtualStores)

4
SQL Server Developer Edition 2012 หรือ 2014 - ดาวน์โหลด
ฉันได้ยินมาแล้ว (ฉันค่อนข้างแน่ใจ) Developer Edition นั้นฟรีและสำหรับการดาวน์โหลดมันไม่จำเป็นต้องลงทะเบียน แต่เมื่อฉันเริ่มมองหามันในวันนี้ฉันไม่สามารถหาได้จากที่ใด ความเข้าใจของฉันผิดหรือถูกต้อง? ขออภัยฉันไม่พบคำถามที่คล้ายกันที่นี่ ความคิดใด ๆ
14 sql-server 

1
SQL Server สร้างแผนใหม่ในแต่ละวัน
เรามีปัญหานี้ในสภาพแวดล้อมการผลิตของเรา Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) - รุ่นองค์กร (64 บิต) บน Windows NT 6.1 (รุ่น 7601: Service Pack 1) SQL Server กำลังวางแผนปฏิบัติการเกือบทั้งหมด (เกือบ 100%) และสร้างใหม่ทุกวันข้ามคืน (จาก 11:00 PM ถึง 8:00 AM) สิ่งนี้เกิดขึ้นเมื่อ 'สถิติการอัปเดตอัตโนมัติ' อยู่ในสถานะปิดใช้งาน เราได้เปิด 'สถิติการอัปเดตอัตโนมัติ' ในช่วง 2-3 สัปดาห์ที่ผ่านมา แต่มันก็ยังคงเกิดขึ้น เราไม่รู้จริง ๆ ว่าอะไรเป็นต้นเหตุของแผนยุคใหม่นี้ แต่เรามั่นใจว่าเราจะไม่ทำด้วยตนเอง สิ่งเดียวที่เกิดขึ้นจริงกับช่วงเวลาของแผนที่ถูกสร้างใหม่คืองานบำรุงรักษาฐานข้อมูลที่เรามี: ดัชนีรายวันปรับโครงสร้างองค์กรใหม่ …

4
ฐานข้อมูล Azure SQL“ การล็อกอินล้มเหลวสำหรับผู้ใช้” ในแอปพลิเคชัน แต่ทำงานได้ดีใน SSMS
ฉันต้องการลองใช้คุณลักษณะผู้ใช้ฐานข้อมูลที่มีอยู่ใน Azure SQL Database V12 แต่ฉันประสบปัญหาในการตรวจสอบสิทธิ์ซึ่งดูเหมือนว่าแปลกสำหรับฉัน Classifierฉันสร้างฐานข้อมูลที่เรียกว่า ฉันเพิ่ม IP ของฉันไปที่กฎไฟร์วอลล์เพื่อให้ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์ Azure db จาก SSMS บนเวิร์กสเตชันของฉัน เมื่อฉันสามารถเชื่อมต่อผ่าน SSMS เพื่อการดูแลระบบได้ฉันพยายามเพิ่มผู้ใช้ด้วยรหัสผ่านในฐานข้อมูลเช่นนี้ CREATE USER classifier WITH PASSWORD='thepassword' ฉันยังเพิ่มผู้ใช้นี้ในบทบาทตัวเขียนข้อมูลและผู้อ่าน exec sp_addrolemember 'db_datawriter', 'classifier' exec sp_addrolemember 'db_datareader', 'classifier' หลังจากนี้ฉันสามารถเชื่อมต่อกับฐานข้อมูลด้วยข้อมูลรับรองเหล่านี้จาก SSMS: แต่นี่คือสิ่งที่ผิดพลาด: ฉันได้ลองใช้สายอักขระการเชื่อมต่อที่แตกต่างกันหลายอย่างและดูเหมือนจะไม่สามารถเชื่อมต่อกับเว็บแอปที่ฉันกำลังทำงานอยู่ได้ มันใช้งานไม่ได้ในสภาพแวดล้อม Azure ดังนั้นฉันจึงใช้งาน localhost โดยมีสตริงการเชื่อมต่อไปยังฐานข้อมูล Azure และจะไม่เชื่อมต่อ นี่คือสตริงการเชื่อมต่อที่ฉันใช้ในขณะนี้: <add name="Classifier" connectionString="Data Source=xxxxxxx.database.secure.windows.net;Initial Catalog=Classifier;User ID=classifier;Password=xxxxxxxxxxxxx;Encrypt=True;TrustServerCertificate=False;Connection …

7
ฉันจะสำรองข้อมูลของตารางเฉพาะใน SQL Server 2008 โดยใช้ T-SQL Script ได้อย่างไร
ฉันต้องการสำรองข้อมูลของตารางเฉพาะที่มีอยู่ในฐานข้อมูลของฉันใน.bakไฟล์และสิ่งเหล่านี้ควรทำโดยใช้สคริปต์ T-SQL

1
Postgres: ตรวจสอบพื้นที่ดิสก์ที่ถ่ายโดยมุมมอง materialized?
ฉันรู้วิธีตรวจสอบขนาดของดัชนีและตารางใน Postgres (ฉันใช้เวอร์ชัน 9.4): SELECT relname AS objectname, relkind AS objecttype, reltuples AS "#entries", pg_size_pretty(relpages::bigint*8*1024) AS size FROM pg_class WHERE relpages >= 8 ORDER BY relpages DESC; แต่สิ่งนี้จะไม่แสดงมุมมองที่ปรากฏ ฉันจะตรวจสอบจำนวนเนื้อที่ดิสก์ที่ใช้ไปได้อย่างไร

2
นับข้อมูลโดยใช้ช่วงวันที่หลายช่วง
อาจมีการถามก่อนหน้านี้ แต่ฉันไม่สามารถคิดออก ฉันมีphone_clicksโต๊ะ (ซอซอร์ต sql http://sqlfiddle.com/#!15/855e0/1 ) CREATE TABLE phone_clicks ( id integer NOT NULL, date date NOT NULL, industry_id integer NOT NULL, clicks integer DEFAULT 0 NOT NULL ); insert into phone_clicks(id, date, industry_id, clicks) values (1, '2015-03-16', 1, 15), (2, '2015-03-16', 2, 7), (3, '2015-03-16', 3, 0), (4, …
14 postgresql 

1
เราจำเป็นต้องจัดการธุรกรรมในรหัส C # หรือในขั้นตอนการจัดเก็บ
เราจำเป็นต้องมีการจัดการธุรกรรมใน c # หรือไม่รวมถึงการจัดเก็บฐานข้อมูลทั้งสองด้าน ค#: Using(transaction with transaction scope) { Execute stored proc; Transaction. Complete; } โพรซีเดอร์ที่เก็บ SQL: Create process As Begin try Begin transaction Commit End try Begin catch Rollback End catch

2
stats_column_id และ index_column_id ไม่อัพเดตด้วยลำดับฟิสิคัลของดัชนีคลัสเตอร์ที่มีการเปลี่ยนแปลง
ยกเว้นว่าฉันเข้าใจผิดวัตถุประสงค์ของคอลัมน์รหัสต่อไปนี้บ่งชี้ว่าการเปลี่ยนแปลงโครงสร้างของดัชนีคลัสเตอร์จะไม่เปลี่ยนตำแหน่งอันดับ ( stats_column_id) ของคอลัมน์ในsys.stats_columns DMV (ทดสอบใน AdventureWorks2014, AdventureWorks2008R2) select i.name, c.name, ic.column_id, ic.index_column_id from sys.indexes i join sys.index_columns ic on i.object_id = ic.object_id and i.index_id = ic.index_id join sys.columns c on i.object_id = c.object_id and ic.column_id = c.column_id where i.name = 'PK_BusinessEntityAddress_BusinessEntityID_AddressID_AddressTypeID' order by ic.key_ordinal; select sh.name,s.name, c.name, c.column_id, sc.column_id, …

1
มีวิธีแทรกหลายแถวในตารางที่มีค่าเริ่มต้นสำหรับคอลัมน์ทั้งหมดหรือไม่
ฉันสามารถแทรกหลายแถวลงในตารางที่มีค่าเริ่มต้นสำหรับคอลัมน์ทั้งหมดด้วยวิธีRBAR : create table course(course_id serial primary key); do $$ begin for i in 1..100000 loop insert into course default values; end loop; end;$$; มีวิธีการทำเช่นเดียวกันกับคำสั่ง SQL เดียวหรือไม่

2
มาตราส่วน PostgreSQL TRIGGER
Postgres กระตุ้นกลไกการปรับขนาดอย่างไร เรามีการติดตั้ง PostgreSQL ขนาดใหญ่และเราพยายามที่จะใช้ระบบที่อิงเหตุการณ์โดยใช้ตารางบันทึกและ TRIGGER โดยทั่วไปเราต้องการสร้าง TRIGGER สำหรับแต่ละตารางที่เราต้องการรับการแจ้งเตือนสำหรับการดำเนินการ UPDATE / INSERT / DELETE เมื่อทริกเกอร์นี้เริ่มทำงานมันจะเรียกใช้ฟังก์ชั่นที่จะเพิ่มแถวใหม่ (เข้ารหัสเหตุการณ์) ลงในตารางบันทึกที่เราจะสำรวจจากบริการภายนอก ก่อนที่จะเข้าร่วมกับ Postgres TRIGGER (s) เราต้องการทราบวิธีการปรับขนาด: เราสามารถสร้างทริกเกอร์จำนวนเท่าใดในการติดตั้ง Postgres เดียว ส่งผลกระทบต่อประสิทธิภาพการค้นหาหรือไม่ ใครเคยลองสิ่งนี้บ้างไหม?

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