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

Microsoft SQL Server ทุกรุ่น (ไม่ใช่ MySQL) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น sql-server-2016 เนื่องจากมักเกี่ยวข้องกับคำถาม

2
ทำไม“ SELECT POWER (10.0, 38.0);” โยนข้อผิดพลาดทางคณิตศาสตร์มากเกินไป?
ฉันอัปเดตของฉันIDENTITYสคริปต์เช็คล้นไปยังบัญชีสำหรับDECIMALและNUMERIC IDENTITYคอลัมน์ เป็นส่วนหนึ่งของการตรวจสอบฉันคำนวณขนาดของช่วงชนิดข้อมูลสำหรับทุกIDENTITYคอลัมน์ ฉันใช้มันเพื่อคำนวณเปอร์เซ็นต์ของช่วงนั้นหมดไป สำหรับDECIMALและNUMERIC ขนาดของช่วงนั้นเป็น2 * 10^p - 2ที่ที่pมีความแม่นยำ ฉันสร้างกลุ่มตารางทดสอบด้วยDECIMALและNUMERIC IDENTITYคอลัมน์และพยายามคำนวณช่วงดังนี้: SELECT POWER(10.0, precision) FROM sys.columns WHERE is_identity = 1 AND type_is_decimal_or_numeric ; สิ่งนี้ทำให้เกิดข้อผิดพลาดต่อไปนี้: Msg 8115, Level 16, State 6, Line 1 Arithmetic overflow error converting float to data type numeric. ฉัน จำกัด ให้แคบลงไปยังIDENTITYคอลัมน์ประเภทDECIMAL(38, 0)(เช่นด้วยความแม่นยำสูงสุด) ดังนั้นฉันจึงลองPOWER()คำนวณโดยตรงกับค่านั้น แบบสอบถามต่อไปนี้ทั้งหมด SELECT POWER(10.0, …

3
heaps ถูกพิจารณาว่าเป็นโครงสร้างดัชนีหรือเป็นโครงสร้างตารางที่ไม่มีดัชนีหรือไม่?
แรงบันดาลใจจากโพสต์นี้: https://twitter.com/#!/SQLChicken/status/102930436795285505 ฮีป: พวกเขาพิจารณาโครงสร้างดัชนีหรือเป็นโครงสร้างตารางที่ไม่มีดัชนีหรือไม่
15 sql-server  heap 

3
แผนการบำรุงรักษา SQL Server แนวปฏิบัติที่ดีที่สุดมีลักษณะอย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันเป็นนักเรียนจากมหาวิทยาลัย Fontys ใน Eindhoven และขณะนี้ฉันกำลังดำเนินการสัมภาษณ์หลายชุดเพื่อช่วยในการพัฒนาเครื่องมือ SQL Server และฉันต้องการรับคำติชมจากผู้เชี่ยวชาญในสาขานี้ หนึ่งในคำถามของฉันคือ: แผนการบำรุงรักษา SQL Server แนวปฏิบัติที่ดีที่สุดมีลักษณะอย่างไร คุณใช้แผนการบำรุงรักษาของ SQL Server สำหรับสิ่งนี้หรือคุณใช้สคริปต์ที่กำหนดเองได้หรือไม่?

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


2
คำถามการสำรอง / กู้คืนฐานข้อมูล 10 TB
เรามีฐานข้อมูลการผลิตขนาดใหญ่มากซึ่งมีขนาด 10 TB เรากำลังพิจารณาโยกย้ายไปยังบริการคลาวด์ แต่ฉันต้องเข้าใจความเสี่ยงและประเมินระยะเวลาของกระบวนการทั้งหมด ฉันสำรองฐานข้อมูลหนึ่งครั้งต่อเดือนโดยใช้โซลูชันการสำรองข้อมูล Native SQL Server 2014 SP2 ระยะเวลาเกือบ 720 นาที - 12 ชั่วโมง อัตราส่วนการบีบอัดคือ 5 หมายถึงขนาดสำรองเกือบ 2 TB เราไม่สามารถทำสำเนาสำรองที่แตกต่างกันได้เนื่องจากสะสมสิ่งเหล่านี้ใช้เวลาและพื้นที่มากเท่ากับ Full ดังนั้นเราจึงทำการสำรองข้อมูล T-log (ประมาณ 200 Mb ต่อครั้ง) แทนทุก ๆ 10 นาที ~ 144 ไฟล์ต่อวัน คำถามบิ๊กกำลังมีสถิติเหล่านี้ไม่มีใครมีความคิดใด ๆ ว่าต้องใช้เวลานานเท่าใดในการกู้คืนข้อมูลสำรอง 2 TB ที่มีข้อมูล 10 TB มันจะนานกว่าระยะเวลาการสำรองข้อมูลทั้งหมดหรือไม่

1
ประโยชน์ของการใช้ WITH TABLOCK บน INSERT
ในบางกรณีการทำINSERT INTO <tablename> (WITH TABLOCK)จะเร็วขึ้นเนื่องจากการบันทึกขั้นต่ำ สถานการณ์เหล่านั้นรวมถึงการมีฐานข้อมูลในBULK_LOGGEDรูปแบบการกู้คืน มีประโยชน์ด้านประสิทธิภาพที่เป็นไปได้อื่น ๆ ที่จะใช้WITH TABLOCKในINSERTตารางว่างเปล่าเมื่อฐานข้อมูล ( tempdb ) กำลังใช้SIMPLEโมเดลการกู้คืนหรือไม่? ฉันทำงานกับ SQL Server 2012 Standard Edition กรณีการใช้งานของฉันใช้สำหรับการสร้างและจากนั้นสร้างตารางชั่วคราวภายในโพรซีเดอร์ที่เก็บไว้โดยใช้INSERT...SELECT, ซึ่งอาจมีแถวได้มากถึงสองสามล้านแถว ฉันพยายามหลีกเลี่ยงการใช้tempdb ในทางที่ผิด แต่บางครั้งก็จำเป็น TABLOCKฉันพยายามที่จะสร้างกรณีที่จะต้องใช้ ดูเหมือนว่ามันจะไม่ทำร้ายอะไรและอาจมีประโยชน์ ฉันพยายามที่จะคิดออกว่ามีประโยชน์พอที่จะเพิ่มได้ทุกที่ในฐานรหัสของเราหรือไม่ซึ่งฉันแน่ใจว่าไม่มีกระบวนการอื่นที่ต้องการเขียนลงในตาราง ฉันมักจะแทรกลงในตารางชั่วคราวที่สร้างขึ้นใหม่ด้วย PK แบบคลัสเตอร์ แต่บางครั้งก็ใช้กอง

1
datetime2 (0) vs datetime2 (2)
ตามเอกสารdatetime2 (Transact-SQL) : ขนาดหน่วยเก็บข้อมูล 6 ไบต์สำหรับ precisions น้อยกว่า 3 7 ไบต์สำหรับ precensions 3 และ 4 ข้อกำหนด อื่น ๆ ทั้งหมดต้องการ 8 ไบต์ ขนาดของdatetime2(0), datetime2(1), datetime2(2)ใช้เงินเดียวกันของการจัดเก็บ (6 bytes) ฉันจะถูกต้องหรือไม่ในการบอกว่าฉันอาจไปด้วยdatetime2(2)และได้รับประโยชน์จากความแม่นยำโดยไม่มีค่าใช้จ่ายเพิ่มเติม โปรดทราบ: คอลัมน์นี้ถูกทำดัชนีด้วย PK เพื่อจัดทำดัชนีแบบคลัสเตอร์ผสม (ใช้สำหรับการแบ่งตาราง) ฉันไม่สนใจเกี่ยวกับมิลลิวินาที จะdatetime2(0)เป็นซีพียูที่มีประสิทธิภาพเมื่อใช้ในประโยคหรือเมื่อแสวงหาผ่านดัชนี? นี่เป็นตารางขนาดใหญ่ดังนั้นการเพิ่มประสิทธิภาพขนาดเล็กที่สุดจะสร้างความแตกต่างอย่างมาก

2
ทำไมดัชนีของฉันไม่ถูกใช้ใน SELECT TOP?
นี่คือการทำงานที่ลดลง: ฉันกำลังทำแบบสอบถามเลือก ทุกคอลัมน์ในWHEREและส่วนORDER BYคำสั่งจะอยู่ในดัชนีที่ไม่ใช่คลัสเตอร์IX_MachineryId_DateRecordedเดียวซึ่งเป็นส่วนหนึ่งของคีย์หรือเป็นINCLUDEคอลัมน์ ฉันกำลังเลือกคอลัมน์ทั้งหมดเพื่อที่จะส่งผลให้มีการค้นหาบุ๊กมาร์ก แต่ฉันกำลังทำอยู่TOP (1)ดังนั้นเซิร์ฟเวอร์จึงสามารถบอกได้ว่าการค้นหาจำเป็นต้องทำเพียงครั้งเดียวในตอนท้าย สิ่งสำคัญที่สุดคือเมื่อฉันบังคับให้แบบสอบถามใช้ดัชนีIX_MachineryId_DateRecordedมันจะทำงานในเวลาน้อยกว่าหนึ่งวินาที ถ้าฉันปล่อยให้เซิร์ฟเวอร์ตัดสินใจว่าจะใช้ดัชนีใดมันจะเลือกIX_MachineryIdและใช้เวลาประมาณหนึ่งนาที ที่แนะนำให้ฉันจริง ๆ ว่าฉันได้ทำดัชนีถูกต้องและเซิร์ฟเวอร์เพิ่งตัดสินใจไม่ถูกต้อง ทำไม? CREATE TABLE [dbo].[MachineryReading] ( [Id] INT IDENTITY (1, 1) NOT NULL, [Location] [sys].[geometry] NULL, [Latitude] FLOAT (53) NOT NULL, [Longitude] FLOAT (53) NOT NULL, [Altitude] FLOAT (53) NULL, [Odometer] INT NULL, [Speed] FLOAT (53) NULL, [BatteryLevel] INT …

2
เหตุใดคอลัมน์ที่คำนวณเป็นค่า NULL จึงไม่สามารถเรียกดูได้ในมุมมอง
ฉันมีโต๊ะ: CREATE TABLE [dbo].[Realty]( [Id] [int] IDENTITY(1,1) NOT NULL, [RankingBonus] [int] NOT NULL, [Ranking] AS ([Id]+[RankingBonus]) PERSISTED NOT NULL .... ) และมุมมอง: CREATE View [dbo].[FilteredRealty] AS SELECT realty.Id as realtyId, ... COALESCE(realty.Wgs84X, ruian_cobce.Wgs84X, ruian_obec.Wgs84X) as Wgs84X, COALESCE(realty.Wgs84Y, ruian_cobce.Wgs84Y, ruian_obec.Wgs84Y) as Wgs84Y, realty.Ranking, ... FROM realty JOIN Category ON realty.CategoryId = …

5
SQL Server Isnull ส่งคืน 1900-01-01 เมื่อเขตข้อมูลเป็นศูนย์
โค้ดต่อไปนี้จะคืนค่า 1900-01-01 เมื่อฟิลด์ DOB เป็นโมฆะ ฉันต้องการ (และคาดว่า) มันจะคืนค่าสตริงว่าง ('') แต่ไม่ใช่ ฉันจะดำเนินการเพื่อให้ได้ผลลัพธ์ที่ต้องการได้อย่างไร isnull(convert(date,DOB,1),'')

7
รับการสำรองข้อมูลเต็มรูปแบบครั้งล่าสุดและการสำรองข้อมูลบันทึกธุรกรรมสำหรับแต่ละฐานข้อมูล
วิธีเขียนสคริปต์หรือแบบสอบถามที่จะแสดงการสำรองข้อมูลเต็มรูปแบบล่าสุดและสำรองข้อมูลบันทึกล่าสุดสำหรับแต่ละฐานข้อมูลในแต่ละเซิร์ฟเวอร์ที่ใช้งานจริงโดยใช้ตารางระบบ "backupset" และตารางสำรองข้อมูลที่เกี่ยวข้อง
15 sql-server 

2
PostGIS กับ SQL Server สำหรับข้อมูล GIS
ดังนั้นเมื่อเร็ว ๆ นี้ฉันเริ่มที่ บริษัท ใหม่และมีผู้ใช้ ArcGIS จำนวนมากที่ดูเหมือนจะกระตือรือร้นที่จะก้าวไปข้างหน้าด้วยอินสแตนซ์ PostGIS เพื่อให้บริการข้อมูลแก่ลูกค้าของเรา ในขณะที่ฉันไม่มีปัญหากับสิ่งนี้เราเป็นเซิร์ฟเวอร์ SQL 95% และร้านออราเคิล 5% GIS ภายในของเราในปัจจุบันหมดลง SQL Server และฉันยังไม่ได้ยินคำร้องเรียนใด ๆ ฉันรู้ว่า SQL Server มีความสามารถเชิงพื้นที่ / รูปทรงเรขาคณิตที่ปรับปรุงใหม่จำนวนมากในปี 2012 แต่มีคุณสมบัตินักฆ่าใน PostGIS ที่คุ้มค่าที่จะเจาะเข้าสู่แพลตฟอร์มใหม่ใช่หรือไม่ ฉันพยายามค้นคว้าแล้ว แต่ไม่สามารถค้นพบสิ่งใดในเชิงลึกอย่างแท้จริงหรือไม่ได้มีอคติอย่างสมบูรณ์ ฉันต้องการให้เครื่องมือที่ดีที่สุดแก่พวกเขาในการทำงานให้เสร็จ แต่ต้องชั่งน้ำหนักความจริงที่ว่าฉันจะเรียนรู้ Postgres / GIS ตั้งแต่เริ่มต้นและนั่นเป็นการเดินทางทั้งในและของตัวเอง

3
ประเภทคอลัมน์ UUID ที่มีประสิทธิภาพที่สุดคืออะไร
สำหรับการจัดเก็บ UUID 128 บิตมีตัวเลือกการจัดเก็บหลายตัว: คอลัมน์ไบต์ [16] สองคอลัมน์ใหญ่ / ยาว (64 บิต) คอลัมน์ CHAR (36) - เลขฐานสิบหก 32 หลัก + 4 ขีด คอลัมน์เฉพาะฐานข้อมูล UUID หาก db สนับสนุน จากมุมมองของการจัดทำดัชนีซึ่งมีประสิทธิภาพมากที่สุด? หาก db ไม่รองรับ uuid ชนิดเฉพาะที่ 1, 2, 3 เป็นตัวเลือกที่ดีที่สุด?

1
บทบาท db_owner อนุญาตอะไร
ฉันพยายามแก้ไขปัญหาการเข้าสู่ระบบที่ไม่สามารถดูตารางบางอย่างในฐานข้อมูล SQL Server 2012 ในการทำเช่นนั้นฉันพบว่าฉันไม่ค่อยเข้าใจในการเป็นสมาชิกในdb_ownerบทบาทที่อนุญาต ฉันสามารถเข้าใจบทบาทอื่น ๆ เช่นdb_datareader and db_datawriterแต่ฉันยังคงสับสนกับสิ่งที่db_ownerอนุญาต

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