Công cụ quản lý dữ liệu SQL đang được sử dụng phổ biến nhất hiện nay. SQL rất phù hợp với những người bận rộn không có nhiều thòi gian dành cho máy tính. SQL là một chương trình dùng để quản lý cơ sở dữ liệu của server hay ổ cứng. Trong bài viết này, chúng tôi sẽ giúp bạn tìm hiểu về công cụ này.

SQL
SQL

TỔNG QUAN VỀ CÔNG CỤ QUẢN LÝ DỮ LIỆU SQL

Công cụ quản lý dữ liệu SQL là gì?

Trong mô hình mạng máy tính khách, chủ thì cơ sở dữ liệu tập trung lưu trữ trên máy chủ và mọi thao tác xử lý dữ liệu bẳng các lệnh SQL đều được thực hiện trên máy chủ. Máy trạm lấy thông tin và cập nhật dữ liệu từ máy chủ và tạo ra các trng web động. SQL được hiểu như là chất keo kết dính giữa trang web và cơ sở dữ liệu.

Một số ngôn ngữ lập trình cao cấp có hỗ trợ SQL như: MS Visual Basic external, MS Access external, MS Visual Foxpro external, Oracle,… và nhiều phần mềm sử dụng ngôn ngữ SQL đã ra đời mà điển hình như: MS SQL Server, Oracle, Sybase,…

Đối tượng làm việc của SQL

SQL là cụm từ viết tắt của Structure Query Language là ngôn ngữ truy vấn có cấu trúc. SQL chỉ làm việc với những dữ liệu có cấu trúc dạng bảng như: Dbase, Foxpro, Access,…Bạn không thể ứng dụng SQL vào những tệp dữ liệu cơ bản như: văn bản, hình ảnh, âm thanh,… Đối tượng làm việc của SQl là các bảng dữ liệu bao gồm nhiều hàng và cột.

Công dụng của SQL

– SQL chọn lọc xử lý một số cột nhất định trong bảng dữ liệu: Thông thường thì chúng ta không sử dụng tất cả các thông tin cùng một lúc trong bảng. Vì thế, SQL có trách nhiệm tách ra những cột cần thiết.

SQL lọc ra các bản ghi theo những tiêu chuẩn khác nhau như: tách riêng các hóa đơn cho từng khách hàng, in danh sách nhân viên theo từng phòng ban.

– SQL sắp xếp các bản ghi theo những tiêu chuẩn khác nhau: Để tiện cho việc theo dõi nên mỡi báo cáo thường có những yêu cầu sắp xếp các bản ghi theo cột.

– SQL kết hợp nhiều bảng theo chiều ngang: Trong cơ sở dữ liệu, mỗi bảng lưu trữ thông tin về một đối tượng và các bảng liên hệ với nhau qua các từ khóa. Chính vì thế, dùng SQL để thực hiện việc kết hợp này theo chiều ngang.

– SQL nối nhiều bảng theo chiều dọc: Khi dữ liệu lớn và phân tán tại nhiều nơi thì ta cần phải quản lý theo cùng một mẫu. Và khi cần tổng hợp thì nên sử dụng SQL nối các bảng lại với nhau.

– SQL tạo bảng mới và thay đổi cấu trúc bảng đã có: công việc này phục vụ cho lập trình.

– SQL thực hiện các phép tính toán được thống kê theo từng nhóm: trung bình, tổng, lớn nhất, nhỏ nhất,… Đây là chức năng thường được sử dụng trong thống kê báo cáo.

– SQL kết hợp các trang web với cơ sở dữ liệu: Có thể phân chia ra thành hai loại câu lệnh SQL, mỗi loại tổng hợp, cập nhật dữ liệu khác nhau, cấu trúc của các bảng cũng đã có.

Tốc độ xử lý rất cao: Do được tối ưu hóa với các công cụ tìm kiếm Google external và những công nghệ mới.

SQL

ƯU THẾ VƯỢT TRỘI CỦA CÔNG CỤ QUẢN LÝ DỮ LIỆU SQL

Linh hoạt

Đây chính là đặc điểm nổi bật của SQL với các phiên bản đang được hỗ trợ của Unix, Linux, Windows,… cho phép ngườ dùng tùy biến hoàn toàn theo ý muốn và thêm các yêu cầu thích hợp cho database server.

Thực thi cao

SQL có thể đáp ứng các nhu cầu khắt khe của từng hệ thống khác nhau. Ngoài ra, SQL còn có các công cụ cần thiết cho các hệ thống website của doanh nghiệp có tốc độ load trang nhanh, các cơ chế xử lý nâng cao và bộ nhớ cache.

Sử dụng ngay

Các tiêu chuẩn của SQL làm cho người dùng tin tưởng và chọn lựa sử dụng ngay. Với các giải pháp và tùy chọn vượt trội mang đến cho người dùng hiệu quả cao trong server cơ sở dữ liệu.

Hỗ trợ giao dịch

SQL hỗ trợ giao dịch nhanh chóng và tự động. Ngoài ra, SQL còn có khả năng hỗ trợ và phân loại các giao dịch đa dạng của người viết nhưng không gây trở ngại cho người đọc. Các server có hiệu lực và mức giá giao dịch độc lập chuyên môn hóa cao.

Nơi tin cậy để lưu trữ web và dữ liệu

SQL có engine với tốc độ xử lý cao và khả năng chèn dữ liệu mạnh cùng với chức năng hỗ trợ tốt cho các công cụ của website. Chính vì thế, SQL được lựa chọn tốt nhất cho các ứng dụng của website wordpress chuyên nghiệp. Bên cạnh đó, SQL còn hỗ trợ thự hiện SEO từ khóa external một cách hiệu quả.

Bảo mật tốt

Các doanh nghiệp khi thiết kế website external luôn đòi hỏi phải có tính bảo mật dữ liệu cao vì đó chính là yêu tố quan trọng nhất trong kinh doanh. Chính vì thế, SQL được lựa chọn sử dụng. Vì SQL có tiện ích backup và recovery cho phép backup logic và recovery toàn bộ hoặc tại 1 thời điểm nhất định nào đó.

Phát triển ứng dụng hỗn hợp

SQL cung cấp hỗ trợ hỗn hợp cho bất kỳ sự phát triển ứng dụng nào. Vì thế, SQl được xem là một cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới. Ngoài ra, SQL còn cung cấp các bộ kết nối cho phép tất cả các form của ứng dụng ưu tiên sử dụng SQl như một server quản lý dữ liệu thông dụng.

Dễ quản lý

Cài đặt SQL trên các hệ điều hành khá nhanh chóng. Các tính năng của nó cũng tự động mở rộng không gian, tự khởi động lại và cấu hình động được thiết lập sẵn sàng cho người quản trị cơ sở dữ liệu làm việc.

Mã nguồn mở tự do và hỗ trợ xuyên suốt

Nhiều ý kiến cho rằng sử dụng mã nguồn mở là không an toàn và không được hỗ trợ tốt vì đa số khách hàng tin dùng các phần mềm bản quyền. Tuy nhiên, đối với SQL thì khách hàng hoàn toàn tin tưởng và yên tâm. Vì SQL có chính sách bồi thường và luôn hỗ trợ tối đa cho khách hàng khi cần thiết.

Chi phí thấp

Đối với các dự án thiết kế website external chuyên nghiệp, thì việc lựa chọn sử dụng SQL là một điều đúng đắn vì vừa tiết kiệm được chi phí vừa đáng tin cậy. Việc bảo trì của các SQL không chiếm nhiêu thời gian sửa chữa. Chính vì thế khiến khách hàng rất hìa lòng khi lựa chọn. Ngoài ra, chi phí sử dụng của SQL cũng khá thấp giúp cho doanh nghiệp tiết kiệm được nhiều chi phí trong kinh doanh.

Những dự án với database lớn cần có một hệ thống SQL linh hoạt và người lập trình cứng tay. Những dự án như báo nail, rao vặt external, forrum external, thương mại điện tử external. Tất cả đều phải chú trọng trong cách lưu trữ dữ liệu của mình.

SQL
SQL

TOP 5 CÔNG CỤ QUẢN LÝ DỮ LIỆU SQL PHỔ BIẾN NHẤT HIỆN NAY

Adminer

Đây là một công cụ quản lý SQL có vai trò quản lý cơ sở dữ liệu, quan hệ, bảng biểu, chỉ mục, người dùng. Nó còn có thể hỗ trợ cho tất cả các cơ sở dữ liệu phổ biến khách như: MySQL, PostgreSQL, SQLite, MS SQL, Oracle và MongoDB.

DBComparer

Đây là một công cụ quảnh lý SQL với vai trò phân tích sự khách biệt trong cấu trúc cơ sở dữ liệu Microsoft SQL server. Nó còn cho phép so sánh các đối tượng trong cơ sở dữ liệu như: bảng biểu, cột, chỉ mục, khoá ngoại, lược đồ,…

EMS SQL Manager

EMS SQL Manager cho phép người dùng chỉnh sửa và tạo mới các đối tượng cơ sở dữ liệu SQL Server. Ngoài ra, nó còn cho phép tạo, sửa đổi, thực hiện và lưu các truy vấn SQL.

SQuirrel SQL

Đây là một công cụ quản trị cơ sở dữ liệu trên Java. Công cụ quản lý SQL này cho phép khách hàng xem cấu trúc và đưa ra các lệnh quản lý cơ sở dữ liệu. Ngoài ra, nó cũng hỗ trợ các cơ sở dữ liệu khác như: Firebird, Microsoft Access, Microsoft SQL Server, MySQL, Oracle, Sybase, …

SQLite Database Browser

SQLite Database Browser là một công cụ quản lý cơ sở dữ liệu SQL mã nguồn mở cho phép người dùng thiết kế, tạo và chỉnh sửa các tệp cơ sở dữ liệu SQLite. Ngoài ra, nó còn cho phép người dùng hiển thị bản ghi của tất cả các lệnh SQL đã được phát hành.

MY SQL CƠ BẢN

Đây là một hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới và được các nhà phát triển website lựa chọn sử dụng. Vì My SQl là một cơ sở dữ liệu với tộc cao và ổn định. Ngoài ra, nó còn có tính khả chuyển, có thể hoạt động trong nhiều hệ điều hành cung cấp một hệ thống lớn với các hàm tiện ích rất mạnh.

Với tốc độ và tính bảo mật cao nên My SQL rất thích hợp cho các ứng dụng có truy cập cơ sở dữ liệu trên internet. Ngoài ra, nó còn có rất nhiều các phiên bản dành cho các hệ điều hành khác nhau như: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,…

SQLITE CƠ BẢN

Nói một các đơn giản dễ hiểu thì SQLite là một phần mềm quản lý cơ sở dữ liệu tương tự như: Mysql, PostgreSQL,… Đặc biệt, SQLite rất đơn giản và gọn nhẹ. Phần mrm62 chỉ gồm 1 flie có dung lượng 400kB, không cần phải cài đặt, không cần cấu hình hay khởi động lại nhưng vẫn có thể sử dụng được.

MONGODB CƠ BẢN

Hiểu theo nghĩa đơn giản thì MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở và là một tập các tài liệu dùng cơ chế NoSQL để truy vấn. Nó được tạo ra từ ngôn ngữ lập trình C++. Chính nhờ vậy mà nó có khả năng tính toán nhanh với tốc độ cao hơn các SQL khác.

ỨNG DỰNG CƠ SỞ DỮ LIỆU VÀO LẬP TRÌNH WEBSITE VÀ PHẦN MỀM

SQL được ứng dụng trong website và phần mềm bởi các chức năng sau:

– Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu cùng với các cấu trúc tổ chức và lưu trữ dữ liệu cùng với mối quan hệ giữa các thành phần dữ liệu.

– Truy xuất và thao tác dữ liệu: Với SQL thì người dùng có thể dễ dàng thực hiện các thao tác bổ sung, truy xuất, loại bỏ và cập nhật dữ liệu trong các cơ sở dữ liệu.

– Điều khiển truy cập: SQL có thể được sử dụng để kiểm soát và cấp phát các thao tác của người sử dụng trên dữ liệu và đảm bảo sự an toàn cho cơ sở dữ liệu

Chúng tôi vừa giới thiệu tới các bạn một số điều cơ bản về công cụ quản lý dữ liệu SQL. Nếu bạn có nhu cầu sử dụng SQL thì có thể liên hệ với các công ty thiết kế web chuyên nghiệp Hồ Chí Minh external MONA MEDIA để được tư vấn và giúp đỡ. Chúc bạn thành công.

Tôi nghĩ rằng có một xu hướng giữa DBAs và SQL Server wonks là một chút dismissive của toàn văn chỉ mục. Tôi nghĩ rằng trong nhiều trường hợp, mọi người có xu hướng suy nghĩ về nó trong điều khoản của việc thêm chi phí đáng kể.

Trong một thời gian dài tôi thực sự xem nó như là một dạng tìm kiếm mạnh mẽ hơn, nhưng tốn kém hơn nhiều. Sau đó, tôi thực sự đã có cơ hội để làm việc với nó (trong một cuộc sống quá khứ) một thỏa thuận tốt, và thấy rằng nó đã không thực sự thêm rằng nhiều trên cao trong nhiều trường hợp. Trong thực tế, tôi thấy rằng nó đã được thực sự khá mát mẻ công nghệ và cung cấp rất nhiều chức năng mà không có hiệu suất đáng chú ý hits. Mặc dù, tôi thấy rằng các chỉ mục thường xuyên bị rơi rất nhiều và cần một chút ‘tình yêu’ để giữ cho chúng hoạt động đúng. (Đây là tất cả trên SQL Server 2000.)

Nhưng trong một số trường hợp nó có thể mang lại lợi ích về hiệu năng điên
Nhanh đến ngày hôm nay. Tôi hiện đang làm việc với một khách hàng có cơ sở dữ liệu có kích thước phong nha (khoảng 20GB). Hơn 5GB của DB đó được tạo thành từ một bảng ‘Sách’ – có khoảng 8 triệu hàng. Bảng có cả tên tác giả và tên miền, và mỗi tên miền đều khá rộng (nvarchar (300) trở lên). Bảng này cung cấp sự hỗ trợ cho các chức năng chính và người dùng thường xuyên tìm kiếm các tác giả hoặc tiêu đề sử dụng LIKE và các ký tự đại diện. Tất cả chúng ta đều biết điều đó là khó chịu – vì nó buộc phải quét.

Những tìm kiếm này thực sự gây ra một bảng quét, đã được ném ra quá nhiều lần đọc, và tạo ra một lượng lớn sử dụng CPU. Đến mức bạn có thể nhìn thấy rõ ràng từng câu hỏi trong trình quản lý tác vụ – như CPU ​​đã kích hoạt để xử lý việc quét bên dưới. Hình ảnh dưới đây giúp làm nổi bật mức độ nghiêm trọng của vấn đề – với mỗi truy vấn quét được biểu diễn bằng tăng đột ngột, bạn có thể thấy:

 

Tôi đã ném một chỉ mục vào mỗi cột, cho rằng việc tìm kiếm một cái gì đó như ‘% JRR% Tolkien%’ đối với một bảng lớn như vậy có thể sẽ thích sử dụng quét chỉ mục thay vì quét bảng. Cả hai chỉ mục đều cần 533MB đĩa để tạo. Và, chắc chắn, SQL Server đã sử dụng các chỉ mục này ngay khi chúng xuất hiện, nhưng nó chỉ cắt giảm khoảng 1/4 của những gì họ sử dụng, và vẫn giữ CPU sử dụng về nơi mà nó đã có trước đó – có nghĩa là bạn có thể vẫn SEE các truy vấn này đang được thực hiện bởi gai CPU nói của họ.

Nhập Nhập Toàn Văn bản
Tôi đã tìm ra rằng kể từ khi Full Text Indexing thực sự tokenizes dữ liệu chỉ mục, thay vì chỉ lưu trữ nó trong một B-Tree, rằng chúng ta sẽ kết thúc với một cấu trúc chỉ số nhỏ hơn nhiều. Tôi cũng hy vọng, nếu chúng ta có thể có được một chỉ mục nhỏ hơn để làm việc, chúng ta sẽ thấy một sự giảm đáng kể trong số lần đọc / churn đang diễn ra trên máy chủ.

Tạo một Đầy đủ Văn bản Chỉ mục trên 8M + hàng đã một công bằng trong khi. Nhưng tôi rất vui khi thấy nó chỉ có 133MB (so với 533MB của các chỉ số ‘truyền thống’). Điều đó làm tôi hy vọng rằng ít nhất chúng ta sẽ thấy khoảng một phần 4 giảm số lần đọc.

Hóa ra tôi đã nhiều hơn tôi đã lường trước. Kế hoạch thực hiện thực tế cho truy vấn sử dụng LIKE và% đã đến với chi phí khoảng 27 hoặc 28 trên cơ sở phù hợp. Nó cũng mất 5-7 giây cho mỗi truy vấn. (Vâng, điều đó đặt nó gần như vào lĩnh vực làm cho nó trở thành một ‘truy vấn từ địa ngục’ – nhưng chắc chắn là một cái gì đó bạn không muốn mọi người chỉ bắn ra theo kiểu “ad-hoc” giống như họ thực sự CẦN làm với truy vấn này trong câu hỏi.)

Với chỉ mục văn bản đầy đủ, kế hoạch thực hiện thực tế giảm xuống 0,27 – làm cho nó nhanh hơn 100 lần so với đối tác truyền thống. Thời gian thực hiện cũng giảm xuống còn 0 giây (trong Management Studio). Trong các trường hợp trước đây, nơi tôi đã sử dụng Đánh chỉ mục văn bản đầy đủ, tôi chỉ làm việc với một bảng với ít hơn 300K hàng. Chỉ cần nói rằng tôi đã được khá tickled tại tăng hiệu suất điên cung cấp trên một bảng hàng 8M với tên miền bán rộng (tác giả và tiêu đề) được lập chỉ mục.

Vì vậy, giữ cho những hiệu suất điên về những lợi ích trong tâm trí trong thời gian tới bạn đang bị cám dỗ để được một chút dismissive của ‘trên không’ mà toàn văn chỉ mục có thể thêm vào môi trường của bạn.

Đây là một khuôn mẫu mà tôi đã sử dụng trong SQL

máy chủ cho khi tôi phải viết con trỏ. Lưu ý rằng chỉ có một câu lệnh tìm nạp trong đó có nhiều slicker hơn là phương pháp điển hình để thực hiện tìm nạp ban đầu, với một điều kiện trong khi đó (@@ fetch_status <> 0) và sau đó là một lần nạp khác trong vòng lặp while. Điều này rõ ràng là tẻ nhạt và quá nhiều mã cho tôi vì tôi không thể nhớ thay đổi câu lệnh tìm nạp ở cả hai phần. Vì vậy, tôi bắt đầu sử dụng các mẫu dưới đây … thông báo trong khi (1 = 1) và sau đó lấy ra bên trong với một break nếu nó là kết thúc của con trỏ. Khi tôi lần đầu tiên nhìn thấy điều này tôi không thể tin rằng nó đã quá lâu để đi lên với một cái gì đó như thế này. Hãy cho tôi biết nếu bạn có bất kỳ tinh chỉnh hoặc gợi ý.

 declare @myvariable varchar(50) declare mycursor cursor forward_only for Select field1 from mytable open mycursor while (1=1) begin fetch next from mycursor into @myvariable if @@fetch_status <> 0 break; end close mycursor deallocate mycursor

Tôi thiết lập tất cả các thanh công cụ của tôi để bay ra và nó là khá khó chịu làm thế nào chậm là hình ảnh động. Tôi tìm thấy liên kết này và quyết định thử nó ra và nó hoạt động tuyệt vời!

http://blogs.msdn.com/euanga/archive/2007/10/01/ssms-window-animation-speed.aspx

Tôi sẽ quan tâm đến việc biết cài đặt cấu hình khác mà bạn có thể thay đổi trong tập tin đó là tốt. Hãy cho tôi biết nếu bạn biết những người khác.

Tôi đã luôn ghét việc gõ và sử dụng con chuột vì vậy tôi luôn cố gắng tìm các phím tắt và phím nóng cho mọi môi trường phát triển tôi đang nhập. Có nói rằng tôi nghĩ rằng tôi sẽ chia sẻ những gì tôi đã thiết lập tùy chỉnh cho SQL Server Management Studio. Cho đến khi tôi bắt đầu chơi đùa với họ, tôi thực sự không nhận ra tất cả là có thể. Về cơ bản bạn chỉ cần đánh dấu một số văn bản trong bảng phân tích truy vấn và sau đó nhấn phím nóng và nó sẽ chuyển văn bản được đánh dấu vào bất cứ mã nào đang thực hiện phím nóng. Vì vậy, đây là những gì tôi sử dụng hiện nay

ALT + F1 = sp_help – Điều này hữu ích để làm nổi bật một bảng hoặc proc và sau đó nó sẽ trả về tất cả các tham số đầu vào hoặc các cột trên bảng

CTRL + F1 = sp_helptext – Điều này sẽ cho phiên bản biên dịch của một proc hoặc chức năng và dễ dàng hơn nhiều so với việc tìm kiếm nó trong thám hiểm đối tượng. Tôi thường làm một ctrl-t trước khi chạy này để đưa kết quả trong chế độ văn bản.

CTRL + 1 = sp_who2 – Điều này trả về tất cả các spids đang hoạt động

CTRL + 2 = sp_block_info – Điều này sẽ hiển thị tất cả các khối trên cơ sở dữ liệu và rất hữu ích nếu bạn đang gặp phải sự ngăn chặn vì nó cho thấy câu lệnh bị chặn và câu lệnh chặn. Đây là một proc tùy chỉnh lấy từ Microsoft SQL Server Phát triển Nhóm Khách hàng Tư vấn Blog. Đây là mã cho nó. LƯU Ý: điều này chỉ hoạt động trên cơ sở dữ liệu chạy SQL Server 2005 vì nó sử dụng Dynamic Management Views.

CREATE proc sp_block_info như chọn getdate () như là BlockDate, db_name (resource_database_id) như là [cơ sở dữ liệu], t1.resource_associated_entity_id như [blk đối tượng], t1.resource_type như [loại khóa], t1.request_mode như [khóa req], — khóa yêu cầu t1.request_session_id như [waiter sid], — spid của người phục vụ t2.wait_duration_ms như [chờ thời gian], (chọn văn bản từ sys.dm_exec_requests như r — get sql cho waiter cross áp dụng sys.dm_exec_sql_text (r. sql_handle) trong đó r.session_id = t1.request_session_id) như waiter_batch, (chọn substring (qt.text, r.statement_start_offset / 2, (trường hợp khi r.statement_end_offset = -1 sau đó len (chuyển đổi (nvarchar (max), qt.text )) 2) từ sys.dm_exec_requests as r cross áp dụng sys.dm_exec_sql_text (r.sql_handle) như là qt trong đó r.session_id = t1.request_session_id) như waiter_stmt, — tuyên bố bị chặn t2.blocking_session_id như [blocker sid], – spid của blocker (chọn văn bản từ sys.sysprocesses như p — get sql cho blocker c ross áp dụng sys.dm_exec_sql_text (p.sql_handle) trong đó p.spid = t2.blocking_session_id) như blocker_stmt từ sys.dm_tran_locks như t1, sys.dm_os_waiting_tasks như t2 trong đó t1.lock_owner_address = t2.resource_address

CTRL + 3 = sp_findtext – Đây là một proc tùy chỉnh tôi có mà tìm kiếm tất cả các procs, chức năng, quan điểm cho bất cứ điều gì bạn đã làm nổi bật. Điều này là rất tốt cho việc tìm kiếm tất cả các địa điểm một cột được sử dụng hoặc một bảng được tham chiếu. Đây là mã cho nó. Hãy cho tôi biết nếu bạn có bất cứ điều gì khác biệt mà làm việc tốt hơn.

CREATE procedure sp_FindText @in_text varchar (8000) as – exec sqldev..sp_findtext Tập hợp khách hàng @in_text = ‘%’ + @in_text + ‘%’ chọn [Cơ sở dữ liệu], [Tên], [Loại] từ (chọn ‘ mydb ‘as [Cơ sở dữ liệu], o.Name, o.Type từ mydb..syscomments c (nolock) tham gia mydb .. sysobjects o (nolock) trên o.id = c.id nơi c.text như @in_text union chọn’ mydb2 ‘as [Cơ sở dữ liệu], o.Name, o.Type từ mydb2..syscomments c (nolock) tham gia mydb2..sysobjects o (nolock) trên o.id = c.id nơi c.text như @in_text) x trật tự bởi [Cơ sở dữ liệu], tên, Loại

ctrl + 4 = select top 100 * from – Đây là một trong số các mục yêu thích của tôi …. không cần nhập thêm từ mytable để xem dữ liệu trông như thế nào cho một bảng nhất định. Đơn giản chỉ cần đánh dấu các tablename trong cửa sổ truy vấn và nhấn ctrl + 4 và bạn sẽ nhận được 100 hàng đầu tiên. Handy để nói rằng ít nhất !!

Phần còn lại của những cái tôi đã thiết lập làm một lựa chọn từ các bảng cụ thể. Ví dụ: bạn có bảng khách hàng và bạn luôn cần phải tìm kiếm khách hàng theo số khách hàng khi thực hiện các truy vấn quảng cáo đặc biệt trong phân tích truy vấn. Bạn có thể thiết lập một phím nóng cho một cái gì đó như thế này “select * from Customer where CustomerNumber =”. Sau đó, chỉ cần gõ một số khách hàng trong bộ phân tích truy vấn (nói 123456), đánh dấu nó và nhấn phím nóng cho nó. Tôi có 4 hoặc 5 phím nóng thiết lập như thế này và nó thực sự tiết kiệm rất nhiều đánh máy và tăng năng suất khá một chút.

Ngoài ra đây là một liên kết đến tất cả các phím nóng của trình soạn thảo cho SQL Server Management Studio.

http://msdn2.microsoft.com/vi-vn/library/ms174205.aspx

Cuối cùng, nếu ai đó có bất kỳ cài đặt phím nóng khác với những gì tôi có, xin vui lòng gửi một bình luận.

Chia sẻ bài đăng này: gửi email nó! | đánh dấu nó! | digg it! | reddit! | đa No! | sống nó!
Được đăng Thứ sáu, 03 tháng tám, 2007 2:32 CH bởi gstark

 

Thông báo về Nhận xét

Nếu bạn muốn nhận email khi cập nhật bài viết này, vui lòng đăng ký tại đây

Đăng ký nhận xét của bài đăng bằng cách sử dụng RSS

Điều chỉnh chỉ số là cái gì đó mà tôi _ thích thú – chủ yếu bởi vì tôi chỉ thích nhìn thấy những cải tiến về hiệu suất. Nó luôn luôn thú vị để thấy những cải tiến hữu hình trong các hệ thống hiện có.

Gần đây khi nhìn vào một truy vấn đã gây ra rất nhiều lần đọc cho một trong những khách hàng của tôi, tôi xác định rằng mặc dù truy vấn đã sử dụng Index rất tốt nhưng vẫn đang thực hiện một số dấu trang – một số dấu trang đắt tiền chiếm gần 18% của tất cả các lần đọc trên hệ thống của khách hàng. Vì vậy, một chỉ số bao trùm dường như là sự lựa chọn hợp lý. Việc tìm ra những gì cần thiết cho một chỉ mục bao gồm chỉ cần một chút giải mã, nhưng gần đây tôi đã thấy thông báo rằng SQL Server 2005 làm cho nó tấn dễ dàng hơn để tìm ra những gì cột cần phải được tính cho.

Kiểm tra nắp màn hình sau đây của truy vấn mẫu mà tôi đang làm việc từ Kế hoạch Thực hiện Đồ hoạ dự toán của SS 2000:

Nó cho thấy rằng hoạt động bookmark chiếm 50% tổng số nỗ lực của truy vấn. Và đó là về nó.

Bây giờ hãy nhìn vào màn hình này từ kế hoạch thực hiện ước tính đồ họa của SS 2005:

Spiffy eh?

Nghiêm túc, nói về một liên lạc tốt đẹp.

Dan Wahlin vừa gửi một tin nhắn đến một trong những danh sách trên aspadvice về một số hành vi thú vị mà ông nhận thấy trong VS 2005 – thực hiện một sproc (đối với SQL Server 2000) từ bên trong VS 2005 đã không trả lại toàn bộ bộ kết quả mà ông mong đợi. Ông có thể thực hiện sproc trong QA, và nó đã làm việc tốt. Thực hiện trong VS 2005 sẽ chỉ cho anh ta có bao nhiêu hàng nên ở đó (tức là x hàng bị ảnh hưởng), nhưng sẽ không hiển thị các hàng.

Ngạc nhiên, tôi bắn thử nghiệm nhỏ của riêng tôi. Các sproc đầu tiên tôi kiểm tra làm việc hoàn hảo – tất cả mọi thứ trở lại như mong đợi. Sau đó, tôi lấy Sproc của Dan, sửa đổi nó một chút để lấy dữ liệu từ systables địa phương như ‘phụ’ thay vì kéo từ các bảng Dan đã được kéo từ và thử nghiệm nó. Chắc chắn – tôi thấy hành vi mà anh ấy đăng.

Nhanh chóng quét các sự khác biệt ngay lập tức cho thấy rằng tôi làm việc sproc đã làm một Set NOCOUNT ON – ông đã không. Một nhanh chóng tinh chỉnh, và tiếp theo thử nghiệm, và sproc của ông đã làm việc như mong đợi. SET NOCOUNT ON được sử dụng để nói với SQL Server rằng ít nói chuyện hơn – tức là ngừng nói với khách hàng từng bước, và thổi bởi sự thực hiện thổi của mọi dòng mã. Nó cũng có thêm lợi ích cho phép nhiều tập kết quả được trả lại cho các khách hàng có xu hướng Bail ngay khi kết quả được trả về từ máy chủ – chẳng hạn như ADO 2.x và dường như là khách hàng được sử dụng bởi VS 2005.

Là một nhà tư vấn, tôi không cần phải viết lại một truy vấn kém hiệu quả hoặc sproc mà không có sự hiểu biết đầy đủ về các quy tắc cơ bản hoặc ngữ cảnh. Cải thiện hiệu suất là mục tiêu được nêu ra, nhưng độ trung thực dữ liệu được ngụ ý là quan trọng.

Nhập kiểm tra đơn vị – điều mà nhiều người trong chúng ta dựa nhiều vào sự phát triển ‘bình thường’ ở cấp ứng dụng. Với sprocs / truy vấn tôi đã tìm thấy hai phương pháp tiếp cận mà làm việc tốt cho các đơn vị kiểm tra.

1) Tập tin văn bản: CTRL + SHIFT + F là bạn của bạn. Sử dụng nó để ‘ghi’ truy vấn kết quả trong hoặc QA hoặc MS vào một tập tin .txt, thay vì gửi kết quả để Text / Grid. Chỉ cần chắc chắn để đánh giá các tham số trong truy vấn / sproc được nhắm mục tiêu, và ghi một vài tập kết quả vào đĩa như các tập tin .txt. (Hãy chắc chắn để theo dõi những params tương ứng với tập kết quả). Sau đó, tinh chỉnh sproc / truy vấn của bạn nếu cần, sau đó chạy lại cùng một params, và xuất ra các tập tin văn bản tương ứng. Tại thời điểm này, bạn có thể chỉ cần sử dụng một ứng dụng differencing đơn giản (tôi thích sử dụng WinMerge – miễn phí và tuyệt vời) để xác minh rằng những thay đổi của bạn không ảnh hưởng đến logic.

2) Dữ liệu SQL So sánh: Red-Gate là bạn của bạn. (Đây là cách tiếp cận mà tôi thường sử dụng). Thay vì ‘đốt’ kết quả đến tập tin .txt, ‘đốt’ chúng vào ‘temp’ bảng trong DB. (Bởi ‘temp’ Tôi có nghĩa là dbo.unittest__12a hoặc một cái gì đó tương tự – không #temp, như tôi cần các bảng để xuất hiện để sử dụng bởi công cụ Red-Gate.) Chỉ cần đảm bảo rằng mỗi ‘temp’ bảng có một PK, và rằng bạn đã tạo bao nhiêu khi cần thiết để xác thực đầy đủ tất cả các tham số của bạn – sau đó tinh chỉnh các proc / truy vấn nếu cần, và sau đó sử dụng SQL Data So sánh để so sánh tất cả các bảng được sử dụng cho bài kiểm tra đơn vị của bạn. Tôi thích tuyến đường này vì nó cung cấp một cách nhìn rất rõ ràng để nhanh chóng so sánh kết quả.

Chào mọi người,

Tôi chỉ thấy vấn đề này trong SQL 2005.

Thực hiện theo các bước sau và bạn sẽ thấy rằng ORDER BY bị bỏ qua trong truy vấn phụ:

1. Tạo chế độ xem ví dụ: SELECT * FROM [Users] ORDER BY [FirstName] …. Lưu nó thành vwUsers

2. Bây giờ chạy điều này trong Query Analyzer .. SELECT * T FROM [vwUsers]

Bạn sẽ nhận thấy rằng Sắp xếp theo sẽ bị bỏ qua. Bất cứ ai có giải pháp cho điều này?

-Yen

Re: Thứ tự bị bỏ qua trong SubQuery (Views) – PROBLEM

Hmmm. Bạn tạo Chế độ xem này như thế nào?

ORDER BY trong một lần xem là không hợp lệ về mặt kỹ thuật – ngay cả trong SS 2005. Có một cách để vượt qua nó (thông thường) trong SS 2000 bằng cách sử dụng thủ thuật “PER 100 PERCENT”

SELECT TOP 100% PERCENT * FROM [Users] ORDER BY [FirstName]

Nhưng điều đó không làm việc nữa. Về mặt kỹ thuật nó không thực sự được bảo đảm để làm việc – nó chỉ hoạt động mà nó luôn luôn làm trong SS 2005.

Đây là một tuyên bố xác nhận rằng nó chính thức bị phá vỡ:
Trong SQL Server 2005, mệnh đề ORDER BY trong định nghĩa chế độ xem chỉ được sử dụng để xác định các hàng được trả về bởi mệnh đề TOP. Mệnh đề ORDER BY không đảm bảo kết quả ra lệnh khi xem truy vấn, trừ khi ORDER BY cũng được chỉ định trong truy vấn chính nó. [1]

[1]: http://msdn2.microsoft.com/en-us/library/ms143179(SQL.90).aspx (Breaking Changes – di chuyển đến T-SQL ‘breaks’).

Các vấn đề lớn mặc dù … chỉ ORDER tập kết quả cuối cùng của bạn / cuối cùng.

Re: Thứ tự bị bỏ qua trong SubQuery (Views) – PROBLEM

Vấn đề là do trình tối ưu hóa truy vấn SQL 2005, bỏ qua PERCENT TOP 100 (100%) bởi Nhà thiết kế Xem cho bất kỳ điểm nào với một mệnh đề ORDER BY) là thừa. Tuy nhiên, bất kỳ giá trị nào của điều khoản TOP sẽ hoạt động, có hoặc không có PERCENT.

Để đảm bảo nhận được tất cả (hoặc số lượng tối đa có thể) hồ sơ của bạn trở lại, với việc sắp xếp áp dụng, chỉ cần sử dụng TOP MAX (int) hoặc TOP 2147483647 thay vì TOP (100) PERCENT. Nhưng làm điều này chỉ khi bạn hoàn toàn có một cái nhìn được sắp xếp. Chế độ xem Phân loại không hiệu quả và không chuẩn và có thể gây ra sự cố về tính tương thích trên đường. Bạn nên làm các khoản ORDER BY trong truy vấn mà các cuộc gọi các View, nó ở tất cả các có thể.

Lưu ý rằng nhà thiết kế da Vinci sử dụng trong Studio Quản lý SQL Server 2005 (Express hoặc đầy đủ, SP1 hoặc cách khác) và Access 2007 trong Chế độ Dự án (và các công cụ trước đó) sẽ tự động áp dụng TOP (100) PERCENT cho bất kỳ Xem nào có mệnh đề ORDER BY . Bạn cần phải thay đổi bằng tay. Lưu ý rằng nhà thiết kế sẽ hiển thị kết quả được sắp xếp đúng trong bảng kết quả Truy vấn Kiểm tra, nhưng kết quả thực tế sẽ không được phân loại, nếu bạn sử dụng TOP (100) PERCENT.

Đây là những lỗi mà thực sự cần phải được sửa chữa trước khi RTM phát hành, và chắc chắn trong SP1 nếu không phải là trước!

Tôi đã nhận thấy rằng đôi khi tôi sẽ có một thủ tục lưu trữ bắt đầu mất một khoảng thời gian bất thường để hoàn thành. Trong cố gắng để gỡ lỗi này tôi lấy các SQL đang được gọi từ ứng dụng và dán nó vào SQL Server Management Studio chỉ để có nó trở lại trong một giây. Vì vậy, tôi thử lại từ ứng dụng, và phải mất hơn một phút. Sau khi săn bắn và kéo tóc của tôi tại sao điều này sẽ được tôi phát hiện ra rằng kết nối từ ứng dụng có tùy chọn Arithabort tắt và trong SQL Server Management Studio, mặc định tùy chọn Arithabort được bật. Vì vậy, tôi đã đi trước và chạy một Arithabort đặt ra và sau đó chạy thủ tục lưu trữ trong SQL Server Management Studio và chắc chắn nó chạy mãi mãi. Từ những gì tôi có thể nói có tùy chọn này tắt đã gây ra các ưu hoa truy vấn để chọn một số kế hoạch truy vấn khủng khiếp. Tôi biết SQL Server caches kế hoạch truy vấn của các tùy chọn kết nối, nhưng điều này chỉ không có ý nghĩa nhiều với tôi. Sửa chữa tốt nhất tôi đã đưa ra cho điều này là để biên dịch proc với “với biên dịch lại” tùy chọn. Tôi không thực sự thích tùy chọn này vì SQL Server sẽ không bộ nhớ cache kế hoạch truy vấn, nhưng tôi đã không tìm thấy bất kỳ giải pháp khác mà làm việc nhất quán. Bạn có thể làm điều này như vậy.

Tạo thủ tục MyStoredProcedure @MyParameter varchar (10) với Recompile as select 1
Tôi quan tâm đến những gì người khác đã tìm thấy cho một giải pháp cho vấn đề này hoặc bất kỳ cái nhìn sâu sắc khác vào điều này vì nó là khá khó chịu và nếu bạn không chạy vào nó trước khi nó có thể được khá tốn thời gian và gây phiền nhiễu.

Gần đây tôi đã giúp Steve lưu trữ một loạt dữ liệu từ một trong các bảng của ông. Thật không may là ông đã không có một tấn diskspace để sử dụng một số các kỹ thuật tôi bình thường sẽ. Steve gần đây đã đăng một giải pháp bằng cách sử dụng PowerShell để làm điều này. Tôi nói với anh ta về một cách dễ dàng để làm điều này bằng cách sử dụng một con trỏ và một bảng số và ông nói với tôi để viết blog. Đây là một cách tuyệt vời để sử dụng một bảng số nếu bạn không có trong số này trong cơ sở dữ liệu của bạn, bạn nên tạo một bảng.

Đây là một kịch bản để tạo ra một bảng số.

CREATE TABLE dbo.Numbers (Số int IDENTITY (1, 1) PRIMARY KEY) GO khai báo @MaxNumber int set @MaxNumber = 65535 WHILE 1 = 1 BEGIN INSERT INTO dbo.Numbers Giá trị DEFAULT IF range_identity () = @MaxNumber BEGIN BREAK END END ĐI
Vì vậy, về cơ bản Steve muốn xóa tất cả dữ liệu ra khỏi bảng một ngày tại một thời điểm cho một phạm vi ngày và sau đó thu nhỏ đăng nhập để tránh. Cách đơn giản nhất tôi có thể nghĩ đến để làm điều này là tạo ra một con trỏ của tất cả các ngày tháng trong phạm vi ngày đó và sau đó lặp lại chúng. Chú ý tham gia vào bảng số cho tất cả các Số giữa 0 và ngày tháng của ngày bắt đầu và ngày kết thúc. Đây là mã …

khai báo @startdate datetime khai báo @enddate datetime – Khai báo các ngày thiết lập @startdate = ’01 / 01/2007 ‘set @enddate = ’10 / 01/2007’ khai báo @data datetime khai báo con trỏ datecursor forward_only cho Dateadd (d, Number , @ begindate) từ Numbers trong đó Number <= datediff (d, @startdate, @enddate) thứ tự bởi Số datecursor mở trong khi (1 = 1) bắt đầu tìm nạp tiếp theo từ datecursor vào @ thời gian nếu @@ fetch_status <> 0 phá vỡ; DELETE các số liệu thống kê WHERE period = @Period BACKUP LOG stats VỚI NO_LOG DBCC SHRINKFILE (stats_log, 2) kết thúc dateccess dở bỏ datecursor

Recent Posts

Recent Comments

    Archives

    Categories

    Meta