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

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

1
เกิดข้อผิดพลาดในการเริ่มบริการ SQL Server 2017 รหัสข้อผิดพลาด 3417
ฉันติดตั้ง SQL Server 2017 บนคอมพิวเตอร์ของฉันแล้ว นี่คือสิ่งที่SELECT @@VERSIONส่งคืน: Microsoft SQL Server 2017 (RTM-GDR) (KB4293803) - 14.0.2002.14 (X64) 21 กรกฎาคม 2561, 07:47:45 ลิขสิทธิ์ (C) 2017 Microsoft Corporation รุ่นองค์กร (64 บิต) บน Windows 10 Enterprise 10.0 (รุ่น 17134: ) ` มันทำงานได้ดีจนกระทั่งเมื่อวาน ทันใดนั้นSQL SERVER Serviceไม่ได้ทำงาน 3417 errorเมื่อผมอยากจะเรียกใช้บริการด้วยตนเองมันแสดงให้เห็น เมื่อฉันตรวจสอบบันทึกเหตุการณ์ฉันเห็นข้อผิดพลาดนี้: การอัปเกรดระดับสคริปต์สำหรับฐานข้อมูล 'ต้นแบบ' ล้มเหลวเนื่องจากขั้นตอนการอัพเกรด 'msdb110_upgrade.sql' พบข้อผิดพลาด 200, …

2
ทำความเข้าใจกับ varchar (สูงสุด) 8000 คอลัมน์และทำไมฉันถึงสามารถเก็บได้มากกว่า 8000 ตัวอักษร
จากเอกสารของ Microsoft นี้ + n กำหนดความยาวสตริงและสามารถเป็นค่าตั้งแต่ 1 ถึง 8,000 max บ่งชี้ว่าขนาดหน่วยเก็บข้อมูลสูงสุดคือ 2 ^ 31-1 ไบต์ (2 GB) ขนาดการจัดเก็บข้อมูลเป็นความยาวจริงของข้อมูลที่ป้อน + 2 ไบต์ โปรดช่วยฉันเข้าใจสิ่งนี้ อักขระสูงสุดสำหรับ varchar น่าจะเป็น8000ซึ่งน้อยกว่า2GBมูลค่าของข้อมูล ฉันเห็นว่ามีระเบียนในvarchar(max)คอลัมน์ของตารางเฉพาะที่มีlen(mycolumn)> 100,000 ดังนั้นฉันรู้ว่าฉันจะได้รับมากกว่า8000อักขระลงในvarchar(max)คอลัมน์ คำถามที่ 1:อย่างไร8000ตัวละครเข้ามาเล่นและที่ฉันควรจะตระหนักถึงมันได้หรือไม่ คำถามที่ 2 : ข้อความค้นหา. dat สุทธิไปยังคอลัมน์นี้จะแสดงผลลัพธ์แบบเต็มด้วยอักขระ 100 000+ ตัวเสมอหรือไม่

2
MariaDB รองรับชนิดข้อมูลคอลัมน์ JSON ดั้งเดิมหรือไม่
ฉันไม่ได้พูดถึงคอลัมน์ไดนามิกฉันถามเกี่ยวกับประเภทข้อมูลคอลัมน์ JSON ดั้งเดิม ในคำง่ายๆฉันสามารถเรียกใช้รหัสต่อไปนี้ในรุ่น MariaDB ใด ๆ CREATE TABLE example (names JSON); เท่าที่ฉันรู้มันไม่ได้ แต่ฉันก็ยังไม่แน่ใจเนื่องจากมีหลายหัวข้อที่พูดถึงการสนับสนุน JSON ใน MariaDB สำหรับทุกวัย แต่ไม่มีใครพูดว่ามันนำมาใช้ในที่สุด - อัปเดต - เพิ่งพบปัญหาสามข้อที่ยังเปิดอยู่บน MariaDB Jira เกี่ยวกับการสนับสนุนประเภทข้อมูล JSON ซึ่งหมายความว่ายังไม่ได้ใช้งานใช่ไหม https://jira.mariadb.org/browse/MDEV-9056 https://jira.mariadb.org/browse/MDEV-9144 https://jira.mariadb.org/browse/MDEV-6632
13 mariadb  json 

2
ใช้แทนที่ใน SQL
ฉันมีตารางและฉันจำเป็นต้องอัปเดตชื่อบางส่วน แต่ฉันสงสัยเกี่ยวกับ แบบสอบถามต่อไปนี้: ทั้งสองจะทำเหมือนกันหรือไม่ Query1 Update mytable Set Name = Replace(Name,'Jeff','Joe') Query2 Update mytable Set Name = 'Joe' where Name = 'Jeff'
13 sql-server 

1
NONCLUSTERED INDEX ที่ยังไม่ได้ใช้ยังสามารถเพิ่มความเร็วการสืบค้นได้หรือไม่?
นี่เป็นสถานการณ์ที่แปลก แต่ฉันหวังว่าบางคนจะมีคำตอบ ในบางช่วงการแก้ไขปัญหาประสิทธิภาพการทำงานของเราได้เพิ่ม nonclustered INDEX sp_BlitzIndexในตารางตามที่ได้รับการร้องขอจาก เราตรวจสอบการใช้งานในวันถัดไปและพบว่ามีการอ่าน0 ครั้ง (การสแกน 0 ครั้ง / การค้นหาการค้นหาเดี่ยว 0 ครั้ง ) ดังนั้นเราจึงปิดการใช้งาน ในนาทีถัดไปเราได้รับการร้องเรียนเกี่ยวกับแอพพลิเคชั่นช้า (ปัญหาประสิทธิภาพ) ที่เราพยายามตรวจสอบและแก้ไขในตอนแรกเมื่อเราเพิ่ม INDEX ทีนี้ฉันรู้แล้วในทางทฤษฎีฟังดูเป็นเรื่องบังเอิญอย่างแท้จริง ดัชนีถูกสรรพสิ่ง, วัด, ที่ไม่ได้ใช้ ปิดการใช้งานไม่ควรทำให้ประสิทธิภาพการทำงานของแบบสอบถามลดลง แต่มันเกือบจะบังเอิญเกินไป คำถาม ดังนั้นคำถามของฉันก็เพียงพอแล้ว: มันเป็นไปได้ทุกที่ , ว่า nonclustered INDEX ซึ่งมีการใช้งานสถิติ (จาก DMVs / การsp_BlitzIndex) แสดงการใช้งาน NO ยังคงได้รับการช่วยให้ประสิทธิภาพการค้นหาบนโต๊ะอย่างใดได้รับผลกระทบหรือไม่

1
วิธีใช้ COLUMNS_UPDATED เพื่อตรวจสอบว่ามีการอัปเดตคอลัมน์ใดคอลัมน์หนึ่งหรือไม่
ฉันมีตารางที่มี 42 คอลัมน์และทริกเกอร์ซึ่งควรทำบางสิ่งเมื่อมีการอัปเดต 38 คอลัมน์เหล่านี้ ดังนั้นฉันต้องข้ามตรรกะหากส่วนที่เหลือ 4 คอลัมน์มีการเปลี่ยนแปลง ฉันสามารถใช้ฟังก์ชั่นUPDATE ()และสร้างIFเงื่อนไขที่ยิ่งใหญ่ได้แต่ต้องการทำสิ่งที่สั้นกว่า ใช้COLUMNS_UPDATEDฉันสามารถตรวจสอบว่าคอลัมน์ทั้งหมดมีการปรับปรุงได้หรือไม่ ตัวอย่างเช่นการตรวจสอบว่ามีการอัปเดตคอลัมน์ 3, 5 และ 9 หรือไม่: IF ( (SUBSTRING(COLUMNS_UPDATED(),1,1) & 20 = 20) AND (SUBSTRING(COLUMNS_UPDATED(),2,1) & 1 = 1) ) PRINT 'Columns 3, 5 and 9 updated'; ดังนั้นค่า20สำหรับคอลัมน์3และ5และค่า1สำหรับคอลัมน์9เนื่องจากถูกตั้งค่าในบิตแรกของไบต์ที่สอง หากฉันเปลี่ยนคำสั่งORเป็นจะตรวจสอบว่าคอลัมน์3และ5หรือคอลัมน์9นั้นมีการ / มีการปรับปรุง? จะใช้ORตรรกะในบริบทของหนึ่งไบต์ได้อย่างไร

4
แบบสอบถามเพื่อเลือกค่าสูงสุดเมื่อเข้าร่วม
ฉันมีตารางผู้ใช้: |Username|UserType|Points| |John |A |250 | |Mary |A |150 | |Anna |B |600 | และระดับ |UserType|MinPoints|Level | |A |100 |Bronze | |A |200 |Silver | |A |300 |Gold | |B |500 |Bronze | และฉันกำลังมองหาข้อความค้นหาเพื่อให้ได้ระดับสำหรับผู้ใช้แต่ละคน บางสิ่งบางอย่างตาม: SELECT * FROM Users U INNER JOIN ( SELECT TOP 1 Level, U.UserName FROM Levels …

3
กลุ่มโฆษณาใดเข้าสู่ระบบผู้ใช้ของฉันเป็นของ?
ฉันไม่แน่ใจว่าฉันเลือกชื่อที่ถูกต้องสำหรับคำถามนี้หรือไม่ สิ่งที่ฉันเป็นจริงหลังจากได้รับผู้ใช้โฆษณา windows แต่ละฉันต้องการค้นหารายชื่อกลุ่มโฆษณา windows (เข้าสู่ระบบ) ที่มีการเข้าถึงฐานข้อมูลเฉพาะในเซิร์ฟเวอร์นี้ เมื่อฉันเรียกใช้แบบสอบถามต่อไปนี้ select name, principal_id, type, type_desc, default_schema_name, create_date, modify_date, owning_principal_id, sid, is_fixed_role from sys.database_principals ในเซิร์ฟเวอร์ของฉัน Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 17 มิถุนายน 2011 00:54:03 ลิขสิทธิ์ (c) Microsoft Corporation Standard Edition (64 บิต) บน Windows NT 6.1 (รุ่น 7601: Service …

1
ทำไมเราถึงใช้ FILE = 1 ในสคริปต์เพื่อกู้คืนฐานข้อมูล
เมื่อเร็ว ๆ นี้เมื่อฉันเจอสคริปต์เพื่อกู้คืนฐานข้อมูลฉันสงสัยว่าทำไมเราต้องใช้ " FILE = 1 "? เราไม่สามารถกู้คืนฐานข้อมูลโดยไม่มีคำสั่งนั้นได้หรือไม่! โดยพื้นฐานแล้วมันใช้ทำอะไร?

5
ไม่โหลดหน้าเว็บ Oracle 12c Express Enterprise Manager
สรุปปัญหา เมื่อเรียกดูหน้าเว็บ Oracle 12c EM Express หน้าจะหมดเวลาเมื่อใช้ URL เช่น: http (s): // hostname: 5500 / em http (s): //hostname.domain: 5500 / em เมื่อใช้ url ที่มีที่อยู่ IP หรือ localhost หน้าเว็บจะโหลด แต่ช้ามาก (มากถึง 5 นาที) http (s): // ที่อยู่ IP / em http (s): // localhost / em เมื่อใช้ชื่อโฮสต์บันทึกการฟังจะแสดงข้อผิดพลาด (หลายรายการ): 03-DEC-2015 11:25:33 …

1
ทำไม UPDLOCK ทำให้ SELECT เลือกที่จะหยุด (ล็อค)?
ฉันมีตัวเลือกใน SQL Server ที่ล็อคทั้งตาราง นี่คือสคริปต์การตั้งค่า (ตรวจสอบให้แน่ใจว่าคุณไม่ได้เขียนทับอะไรเลย) USE [master] GO IF EXISTS(SELECT 1 FROM sys.databases d WHERE d.name = 'LockingTestDB') DROP DATABASE LockingTestDB GO CREATE DATABASE LockingTestDB GO USE [LockingTestDB] GO IF EXISTS(SELECT 1 FROM sys.tables t WHERE t.name = 'LockingTestTable') DROP TABLE LockingTestTable GO CREATE TABLE LockingTestTable ( Id int …

6
อธิบาย 2NF กับ 3NF ด้วยตัวอย่าง
ฉันมีปัญหากับฟอร์มปกติที่สอง (2NF) และฉันไม่สามารถแก้ไขได้โดยใช้ Google มันทำให้ฉันเป็นบ้าเพราะฉันเป็นครูและฉันไม่ต้องการสอนสิ่งผิด ๆ ให้กับนักเรียนของฉัน มามีตารางที่มี 5 ฟิลด์กัน Gradings = {StudentName, SubjectCode, SubjectName, #Exam, Grade} การพึ่งพาเป็นเช่นนี้: StudentName, SubjectCode, #Exam -> Grade SubjectCode -> SubjectName SubjectName -> SubjectCode ดังนั้นที่สำคัญผู้สมัคร 1 {StudentName, SubjectCode, #Exam}และที่สำคัญผู้สมัคร 2 {StudentName, subjectName, #Exam} แอตทริบิวต์ที่สำคัญคือ{StudentName, SubjectCode, SubjectName, #Exam}และแอตทริบิวต์ที่ไม่ใช่นายกรัฐมนตรีคือGrade ตามคำจำกัดความของรูปแบบปกติที่สองแอตทริบิวต์ที่ไม่ใช่นายกไม่สามารถขึ้นอยู่กับส่วนของคีย์ตัวเลือก แอ็ตทริบิวต์ที่ไม่ใช่ไพรม์เท่านั้น (เกรด) ไม่ได้ขึ้นอยู่กับส่วนของคีย์ตัวเลือกดังนั้นตารางนี้จะปรากฏเป็น 2NF ปัญหาคือฉันคิดว่ามีบางอย่างผิดปกติ (และฉันอาจผิด) ฉันคิดว่าผู้เข้าร่วมการศึกษาควรมีตารางของตนเอง …

2
PostgreSQL“ ขนาดของไฟล์ชั่วคราว”
ฉันได้นำเข้าข้อมูลไปยังฐานข้อมูลใหม่ (ประมาณ 600m แถวของการประทับเวลา, จำนวนเต็ม, สองเท่า) จากนั้นฉันสร้างดัชนีบางส่วนและพยายามแก้ไขบางคอลัมน์ (มีปัญหาพื้นที่บางส่วน) ฐานข้อมูลถูกทำให้เป็นสุญญากาศ ตอนนี้ pgAdmin III บอกฉันว่า " ขนาดไฟล์ชั่วคราว " คือ 50G ~ + ไฟล์ชั่วคราวเหล่านี้คืออะไร? เหล่านี้เป็นบันทึกธุรกรรม SQL Server หรือไม่ ฉันจะกำจัดพวกเขาได้อย่างไรดูเหมือนว่าฐานข้อมูลใหญ่กว่าที่ควรจะเป็น (ขนาดรวมของฐานข้อมูลคือ 91 GB) การใช้Posgres 9.4.1บนเซิร์ฟเวอร์ Windows 2012 สกรีนช็อตของแท็บสถิติฐานข้อมูล:

1
ทำไมดัชนีการเลือกรองไม่ได้ใช้เมื่อตัวกรองส่วนคำสั่ง where บน value () `?
ติดตั้ง: create table dbo.T ( ID int identity primary key, XMLDoc xml not null ); insert into dbo.T(XMLDoc) select ( select N.Number for xml path(''), type ) from ( select top(10000) row_number() over(order by (select null)) as Number from sys.columns as c1, sys.columns as c2 ) as N; ตัวอย่าง XML …

1
วิธีแก้ไข RESOURCE_SEMAPHORE และ RESOURCE_SEMAPHORE_QUERY_COMPILE ประเภทการรอ
เรากำลังพยายามหาสาเหตุของการทำงานของ sql server ที่ทำงานช้าการสืบค้น / การดึงข้อมูลจากหนึ่งในฐานข้อมูลขนาด 300 GB โฮสต์บนเซิร์ฟเวอร์ด้วยการกำหนดค่าด้านล่าง: เซิร์ฟเวอร์ Windows 2003 R2, SP2, Enterprise Edition, RAM 16 GB, 12 CPU'S 32 บิต SQL Server 2005, SP4, Enterprise Edition, 32 บิต เราได้แจ้งธุรกิจเกี่ยวกับการอัปเกรดเป็น 64 บิตซึ่งจะใช้เวลามากกว่าหนึ่งเดือน แต่สำหรับปัญหาปัจจุบันเราพยายามรวบรวมข้อมูลถ้าเราสามารถแก้ไขความกดดันของหน่วยความจำหรือในที่สุดก็มาถึงข้อสรุปเพื่อเพิ่มแรม การดำเนินการเสร็จสิ้น: การจัดทำดัชนีและอัพเดตสถานะใหม่นั้นเหมาะสมสำหรับฐานข้อมูล ดังที่แสดงไว้ด้านล่างเราได้สังเกตสัญญาณเซมาฟอร์เป็นเวลา 5 วันที่ผ่านมาวิ่งในช่วงเวลาโหลด: ข้อมูลน้อยหลังจากแบบสอบถามด้านล่าง: ขนาดของบัฟเฟอร์ = 137272 SELECT SUM(virtual_memory_committed_kb) FROM sys.dm_os_memory_clerks WHERE type='MEMORYCLERK_SQLBUFFERPOOL' …

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