Vì lý do công việc, và có lẽ do 1 cái duyên, ngay từ khi bắt đầu đi làm full time tôi đã làm việc với Microsoft SQL Server trong phần lớn công việc của mình, từ phiên bản SQL Server 2008 đến SQL Server 2012. Qua thời gian làm việc, lượng dữ liệu tôi xử lý tăng dần từ hàng trăm lên đến hàng ngàn, có khi lên đến cả trăm triệu records, tôi nhận thấy mình thiếu quá nhiều kiến thức để làm chủ công việc, tối ưu cho máy chủ SQL Server và bảo vệ dữ liệu cho công ty. Xin cho một vài ví dụ:
Và còn rất nhiều vấn đề khác tôi đã tự hỏi mình trong suốt quá trình làm việc, đã và đang tìm ra câu trả lời. Dần dần không biết từ khi nào tôi đã đam mê với database, và tôi đã định hướng con đường sự nghiệp của mình là trở thành 1 chuyên gia quản trị database chuyên nghiệp, trước tiên là SQL Server, sau đó là Oracle, MySQL...
- Các ứng dụng kết nối đến máy chủ SQL Server chạy quá chậm, tôi không biết là mình viết code tồi hay cấu hình phần cứng của server không đủ đáp ứng, tôi có thể tối ưu được gì nữa hay không?
- Tôi hoàn toàn bị động trước các sự cố xảy đến với SQL Server, file log tràn ổ cứng, database bị hư, các ứng dụng liên tục thông báo có deadlock. Liệu có cách nào để tôi có thể nhận được các cảnh báo một cách kịp thời và tự động, trước khi nó ảnh hưởng đến user?
- Tôi nghe nói Index là kiến thức cơ bản để tối ưu hóa cho những câu truy vấn, nhưng thời gian đầu tôi không biết có bao nhiêu loại index, mỗi loại được dùng trong những trường hợp nào? Làm thế nào tôi biết câu truy vấn có sử dụng index hay không? Và index có được sử dụng hiệu quả hay không? Có khi nào tôi tạo ra index mà SQL Server không hề dùng đến?
- Còn yếu tố nào tác động đến hiệu năng của máy chủ SQL Server, ngoài index ra? Tôi tìm hiểu thì người ta nói nhiều đến Index Fragmentation, Statistics, Blocking, Cursors...vậy chúng là gì?
- Làm thế nào chẩn đoán và phát hiện kịp thời các hiện tượng thắt cổ chai (CPU, RAM, HDD, Network)?
- Giả sử tôi backup database lúc 10 giờ sáng, 11 giờ trưa database bị hư, tôi muốn khôi phục database về thời điểm 10 giờ 45 thì làm thế nào?
- Làm thế nào chia database hàng tram GB ra nhiều server riêng biệt, khi có câu truy vấn gì thì tất cả server cùng hợp lực để trả về kết quả?
- Ngoài SQL Server database Engine ra, tôi còn nghe nói đến những khái niệm khác như Microsoft Business Intelligence với SQL Server như Integration Services, Analysis Services, Reporting Services, hay high availability...vậy các công nghệ này dùng để làm gì? Sử dụng như thế nào?
- Vài năm gần đây người ta nói nhiều đến Big Data, về Hadoop, vậy nó là gì?
Và còn rất nhiều vấn đề khác tôi đã tự hỏi mình trong suốt quá trình làm việc, đã và đang tìm ra câu trả lời. Dần dần không biết từ khi nào tôi đã đam mê với database, và tôi đã định hướng con đường sự nghiệp của mình là trở thành 1 chuyên gia quản trị database chuyên nghiệp, trước tiên là SQL Server, sau đó là Oracle, MySQL...
Nhưng chỉ học một mình như chú ông thợ thì biết khi nào mới thành công? Và thế là blog cá nhân này ra đời, đây là nơi để tôi chia sẻ các kiến thức và kinh nghiệm thực tiễn của mình cho các bạn bè đồng nghiệp ở khắp mọi nơi, tiếp thu các góp ý, chia sẻ để cùng tiến bộ. Rất vui được học tập và chia sẻ cùng các bạn.
0 comments:
Post a Comment