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

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

2
ตัวแทน SQL จะอัพเดตค่า next_run_date / next_run_time อย่างไรและเมื่อไร?
ฉันทำงานกับโค้ดใน T-SQL เพื่อเพิ่มกำหนดการใหม่ให้กับงาน SQL Agent โดยใช้ sp_add_jobschedule proc ในฐานข้อมูล msdb เมื่อฉันเพิ่มกำหนดการใหม่ (โดยปกติแล้วจะเรียกใช้ครั้งเดียวในวันที่ / เวลาที่ระบุ) และดูค่าใน sysjobschedules และ sysschedules ทันทีฉันจะเห็นว่ามีการเพิ่มกำหนดการใหม่และเชื่อมโยงกับ job_id สำหรับตัวแทน SQL ของฉัน งาน. อย่างไรก็ตามค่าสำหรับ next_run_date และ next_run_time มี 0 ค่า เมื่อฉันกลับมาและดูพวกเขาอีกครั้งใน 2 หรือ 3 นาทีพวกเขายังคงแสดง 0 ในพวกเขา อย่างไรก็ตามเมื่อฉันกลับมาอีก 5 หรือ 10 นาทีต่อมาตอนนี้มันก็แสดงค่าวันที่และเวลาที่สอดคล้องกับการวิ่งตามกำหนดครั้งต่อไปได้อย่างถูกต้อง ดังนั้นคำถามของฉันคือ: ค่าเหล่านี้มีการอัปเดตบ่อยเพียงใด กระบวนการใดที่ปรับปรุงค่าเหล่านี้ ถ้าฉันจะเพิ่มตารางเวลาที่เคยพูดว่า 1 นาทีในอนาคตนั่นหมายความว่างานจะไม่ทำงานเนื่องจาก next_run_date …

4
สร้างไฟล์พบข้อผิดพลาดของระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง)
ฉันพยายามรันสคริปต์ต่อไปนี้ใน SQL Server Management Studio: USE [master] GO CREATE DATABASE [test1] ON PRIMARY ( NAME = N'test1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1.mdf', SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB) LOG ON ( NAME = N'test1_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1_log.ldf', SIZE = 164672KB , MAXSIZE …


4
ไม่สามารถส่งออกข้อมูล MySQL ไปยังไฟล์
ฉันพยายามที่จะส่งออกข้อมูลจากตาราง MySQL ไปยังไฟล์ แต่ได้รับข้อผิดพลาดในการอนุญาต: $ pwd /home/dotancohen $ mkdir in $ chmod 777 in/ $ mysql -ugs -p mysql> USE someDatabase; mysql> SELECT * FROM data INTO OUTFILE '/home/dotancohen/in/data.csv'; ERROR 1045 (28000): Access denied for user 'gs'@'localhost' (using password: YES) mysql> หากไดเรกทอรีที่เป็นปัญหาถูก chmodded ไปที่ 777 แล้วทำไมผู้ใช้ MySQL ไม่สามารถเขียนไฟล์ได้? น่าสนใจพอฉันไม่สามารถเขียนถึง / …

2
MySQL CAST vs. CONVERT
สมมติว่าฉันมี VARCHAR (ซึ่งมีข้อมูลตัวเลข) ที่ฉันต้องการใช้สำหรับการคำนวณอย่างง่าย (เพิ่ม 10 ลงไป) ตามเอกสาร MySQL ของฟังก์ชั่น CASTฉันสามารถใช้ CAST หรือ CONVERT ได้ SELECT (CAST(field1 AS SIGNED)) + 10 FROM myTable; หรือ: SELECT (CONVERT(field1,SIGNED)) + 10 FROM myTable; ความแตกต่างระหว่าง CAST และ CONVERT ในแง่นี้คืออะไร? พวกเขาทั้งสองประสบความสำเร็จในสิ่งเดียวกันหรือไม่?
13 mysql 


1
MySQL Sharding กับ MySQL Cluster
เมื่อพิจารณาถึงประสิทธิภาพเท่านั้น MySQL Cluster สามารถเอาชนะข้อมูลที่กำหนดเองได้ซึ่งจะทำให้โซลูชัน MySQL แตกหักได้หรือไม่? sharding = การแบ่งพาร์ติชันในแนวนอน เมื่อฉันอ้างถึงการจัดเรียงฉันกำลังพิจารณาการแบ่งส่วนที่เกิดขึ้นในเลเยอร์แอปพลิเคชัน สำหรับเซิร์ฟเวอร์สองเครื่องอาจเป็น (key mod 2)
13 mysql  ndbcluster 

3
การเก็บรักษาการจำลองแบบ Snapshot
ฉันได้ตั้งค่าการจำลองแบบ Snapshot บนเซิร์ฟเวอร์การผลิต SQL Server 2008 ของฉันและฉันเพิ่งสังเกตเห็นว่ามีสแนปชอตอยู่หลายปีก่อนในโฟลเดอร์สแน็ปช็อต ฉันจะเปลี่ยนการเก็บรักษาสำหรับสแนปชอตเหล่านี้ได้อย่างไร โดยเฉพาะฉันต้องการเก็บสแนปชอตเป็นเวลา 5 วัน นี่คือภาพหน้าจอของโฟลเดอร์ที่ฉันกำลังดู:

5
บันทึกผลลัพธ์เป็น CSV * ด้วย * ส่วนหัวใน SSMS
ด้วย SQL Server 2008 R2 เมื่อฉันบันทึกผลลัพธ์เป็น CSV ไม่มีส่วนหัว ฉันสามารถแก้ไขได้โดยการคัดลอกและวางกับ "คัดลอกด้วยส่วนหัว" หรือเพียงแค่คว้าส่วนหัวแล้ววางลงใน CSV ฯลฯ แต่มีวิธีที่ดีกว่าในการทำเช่นนี้หรือไม่

2
การอ้างอิงบริบทของเอเจนต์ SQL PowerShell
ที่งานใหม่ของฉันเรามีอินสแตนซ์ที่มีชื่อหลายรายการในแต่ละเซิร์ฟเวอร์ เช่น Server1 \ Dev Server1 \ DevIntegrated Server1 \ QA ฉันมีสคริปต์ SQL PowerShell ในงานที่เรียกไปยังระบบปฏิบัติการเรียกใช้Foo.exeแต่ต้องผ่านพารามิเตอร์บรรทัดคำสั่ง (สตริงการเชื่อมต่อ) งาน SQL Agent จะมีอยู่ในแต่ละอินสแตนซ์ด้วยขั้นตอนการพิมพ์ PowerShell ที่จำเป็นต้องรู้ว่าบริบทปัจจุบันคืออะไร ieการดำเนินการนี้เริ่มต้นบน DevIntegrated ฉันไม่ต้องการให้สคริปต์เริ่มต้นด้วย ... $thisInstance = "Dev" ... โดยเฉพาะอย่างยิ่งเมื่อฉันต้องแก้ไขว่าเมื่อเราย้ายไปยังสภาพแวดล้อม (เซิร์ฟเวอร์ใหม่และอินสแตนซ์ที่มีชื่อ) ในอีกไม่กี่เดือนข้างหน้า ถ้าฉันเริ่ม SQLPS ฉันสามารถกำหนดอินสแตนซ์ของฉันโดยการแบ่งส่วนและทำให้ผลลัพธ์ของ Get-Location หรือทำงาน (Invoke-Sqlcmd -Query "SELECT @@servername AS ServerName" -SuppressProviderContextWarning).ServerName เมื่อตัวแทนของ SQL เริ่มงานประเภท PowerShell จะเริ่มใน …

5
ใน Oracle ฉันจะบันทึกซีเควนซ์ต่อไปได้อย่างไรในตัวแปรที่จะใช้ซ้ำในส่วนแทรกหลาย ๆ
ฉันกำลังเขียนสคริปต์เพื่อเติมตารางด้วยข้อมูลสำหรับการทดสอบ ฉันต้องการเขียนสิ่งต่อไปนี้ แต่ฉันไม่รู้วิธีการ (ฉัน Oracle 11g) SET ENABLED_USER_ID = SEQ.NEXTVAL; // PSEUDOCODE SET DISABLED_USER_ID = SEQ.NEXTVAL; // PSEUDOCODE INSERT INTO USERS (ID, USR_NAME) VALUES (:ENABLED_USER_ID, 'ANDREW'); INSERT INTO CAR (CAR_ID, CAR_NAME, USR_ID) VALUES (CARSEQ.NEXTVAL, 'FORD', :ENABLED_USER_ID); INSERT INTO USERS (ID, USR_NAME) VALUES (:DISABLED_USER_ID, 'ANDREW'); INSERT INTO CAR (CAR_ID, CAR_NAME, USR_ID) …

3
ความคิดเห็น Rem และ - สำหรับ SQL * Plus แตกต่างกันหรือไม่?
บนพรอมต์ SQL * Plus ทั้งคู่Remและ--มีคุณสมบัติเป็นตัวบ่งชี้ความคิดเห็น: Rem this is a comment -- this is also a comment create table emp ( id number primary key, name cvarchar2(40)); มีความแตกต่างระหว่างเทคนิคการแสดงความคิดเห็นทั้งสองหรือไม่?

2
ข้อ จำกัด - หนึ่งแถวบูลีนเป็นจริงแถวอื่นทั้งหมดเป็นเท็จ
ฉันมีคอลัมน์: standard BOOLEAN NOT NULL ฉันต้องการบังคับใช้หนึ่งแถวจริงและอื่น ๆ ทั้งหมดเป็นเท็จ ไม่มีของ FK หรือสิ่งอื่นใดขึ้นอยู่กับข้อ จำกัด นี้ ฉันรู้ว่าฉันสามารถทำได้ด้วย plpgsql แต่ดูเหมือนว่าค้อนขนาดใหญ่ ฉันต้องการบางสิ่งบางอย่างเช่นCHECKหรือUNIQUEข้อ จำกัด ง่ายกว่าดีกว่า แถวหนึ่งต้องเป็นจริงพวกเขาไม่สามารถเป็นเท็จได้ทั้งหมด (ดังนั้นแถวแรกที่แทรกจะต้องเป็นจริง) แถวจะต้องได้รับการอัปเดตซึ่งหมายความว่าฉันต้องรอตรวจสอบข้อ จำกัด จนกว่าการอัปเดตจะเสร็จสิ้นเนื่องจากแถวทั้งหมดอาจถูกตั้งค่าเป็นเท็จก่อนและหนึ่งแถวจริงหลังจากนั้น มี FK ระหว่างproducts.tax_rate_idและtax_rate.idแต่ไม่มีอะไรเกี่ยวข้องกับอัตราภาษีเริ่มต้นหรือมาตรฐานซึ่งผู้ใช้สามารถเลือกเพื่อสร้างผลิตภัณฑ์ใหม่ได้อย่างง่ายดาย .. PostgreSQL 9.5 ถ้าเป็นเรื่องสำคัญ พื้นหลัง ตารางคืออัตราภาษี อัตราภาษีอย่างใดอย่างหนึ่งคือค่าเริ่มต้น ( standardเนื่องจากค่าเริ่มต้นคือคำสั่ง Postgres) เมื่อมีการเพิ่มผลิตภัณฑ์ใหม่อัตราภาษีมาตรฐานจะถูกนำไปใช้กับผลิตภัณฑ์ หากไม่มีstandardอยู่ฐานข้อมูลต้องทำการเดาหรือเช็คที่ไม่จำเป็นทุกชนิด standardทางออกที่ง่ายผมคิดว่าคือการทำให้แน่ใจว่ามี ตามค่าเริ่มต้น "" ด้านบนฉันหมายถึงเลเยอร์การนำเสนอ (UI) มีตัวเลือกผู้ใช้สำหรับการเปลี่ยนแปลงอัตราภาษีเริ่มต้น ฉันต้องเพิ่มการตรวจสอบพิเศษเพื่อให้แน่ใจว่า GUI / ผู้ใช้ไม่พยายามตั้งค่า tax_rate_id …

1
SQL Server / T-SQL รองรับความต่อเนื่องของบรรทัดเพื่อแยกสตริงที่ยาวหรือไม่?
บางครั้งฉันมีสคริปต์ SQL ที่มีอย่างน้อยหนึ่งสตริงที่ยาวเป็นพิเศษ (บางครั้งก็ยิ่งยาว) โดยทั่วไปสิ่งเหล่านี้เป็นVARBINARYตัวอักษร / ค่าคงที่ที่เป็นตัวแทนของไฟล์ / แอสเซมบลี แต่บางครั้งพวกเขาก็เป็นข้อความ ปัญหาหลักของสายอักขระที่ยาวมาก ๆ คือตัวแก้ไขข้อความบางตัวไม่สามารถจัดการได้ทั้งหมด ตัวอย่างเช่นฉันมีVARBINARYตัวอักษรที่ฉันใช้ในCREATE ASSEMBLY [AssemblyName] FROM 0x....คำสั่งและแอสเซมบลีตัวเองมีขนาดเพียง 1 MB ซึ่งเท่ากับเพียง 2 ล้านอักขระในไฟล์ข้อความเนื่องจากแต่ละไบต์ต้องการอักขระสองตัวที่จะแสดงในรูปแบบเลขฐานสิบหก (เช่น0x1F= a 1และ an F) SQL Server Management Studio (SSMS) จัดการได้ไม่ดีและค้างนานหลายวินาทีในขณะที่ฉันพยายามเลื่อนข้ามบรรทัดนั้น และในความเป็นจริงแล้วบางเวอร์ชั่น (ไม่แน่ใจว่ายังคงเกิดขึ้น) จะแสดงคำเตือนเกี่ยวกับบรรทัดยาวเมื่อเปิดสคริปต์ที่มีอย่างน้อยหนึ่งบรรทัดในระยะเวลาที่กำหนด ปัญหาที่สองคือมันซับซ้อนการจัดรูปแบบเมื่อใช้ในการแก้ไขโดยไม่ต้องเปิดใช้งานการตัดคำหรือโพสต์ออนไลน์ ปัญหาที่นี่คือตัวเลื่อนสำหรับแถบเลื่อนแนวนอนแคบมากและเคลื่อนย้ายได้แม้เพียงเล็กน้อยก็จะเลื่อนข้อความที่ไม่ยาวมากออกไปให้พ้น ตอนนี้ T-SQL จะไม่ยกเลิกคำสั่งด้วยบรรทัดใหม่หรือแม้แต่เซมิโคลอน (แม้ว่าเซมิโคลอนนั้นจะเป็นที่ต้องการ / แนะนำโดยเริ่มจาก SQL Server 2005) ดังนั้นเนื่องจาก SQL …


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