Transcript
Page 1: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

1

FBScannerMR-machine for Firebird

www.ibsurgeon.com

Page 2: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

2

Applications send queries to Firebird and receive results via TCP/IP…

www.ibsurgeon.com

Page 3: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

3

What if we will intercept and analyze SQL traffic?

www.ibsurgeon.com

Page 4: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

4

This is exactly what FBScanner does:

You can see and log: - SQL queries (statements,

parameters, plans)- Connections (IP/names,

versions of clients, times)- Users (names, times, etc)- Transactions - Errors and their reasons

(10054, 10038, etc)

www.ibsurgeon.com

Page 5: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

5

…not only see and log, but take full control and manage it

• Filter (allow/deny) connections by IPs/Names

• Identify and kill zombie connections

• Set priorities for Classic instances • Mark and manage everything:– users, connections, applications,

SQLs statements , etc

www.ibsurgeon.com

Page 6: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

6

Tags are COOL!

Tags are special marks set by developer in the SQL source code of applications

Tags help to quickly answer the following (very frequent) questions:

• What program has launched this query? • What is the transaction for this query? • Where is this [very long] query from?

www.ibsurgeon.com

Page 7: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

7

Tags are not only COOL, they are easy!

• Tags allow to assign readable identifiers (names) to Connections, Queries and Transactions. You just need to add these commentaries to the text of SQL:

SELECT COUNT(*) FROM RDB$DATABASE/* FBSCANNER$CON_NAME=My_application;FBSCANNER$TR_NAME=Read_only_transaction_N1;FBSCANNER$ST_NAME=Customers_list_query; */

www.ibsurgeon.com

Page 8: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

8

FBScanner also can identify and log security breaches• Unsuccessful login attempts• 100% logging of SQLs, connections

and other traffic – queries are stored with information

about their connection and transaction

• All transactions are logged, even rolled back

Who

? W

hen?

Wha

t?

www.ibsurgeon.com

Page 9: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

9

Scenarios

• Let’s quickly walk through the most popular scenarios where FBScanner is used:– General monitoring– Connections’ management– Debug and test applications– Logging

www.ibsurgeon.com

Page 10: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

General monitoring•What server is doing? CPU/traffic/queries•Who is connected to this or that database?• Connections life time. Are any “zombies” at server?• Connections activity•What 20% queries create 80% of server workload?

www.ibsurgeon.com

Page 11: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

Connections’ management

• Filter and close connections (kill and safe disconnect are supported)• Set priorities for connections (Classic only) – manually and automatically

(rule-based)

www.ibsurgeon.com

Page 12: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

Debug and test applications• Error in transaction management– OAT (Oldest Active Transaction). Who lost the transaction?– Named connections, transactions, queries

• Full control– Developer can see queries from own and third-party

applications (closed sourced)– It does not depend on client libraries

• Problem detection– Wrong client library version– Bad queries

www.ibsurgeon.com

Page 13: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

Logging• Connections– All information from FBScannerViewer

(database , login, role, IP, PID, etc)

• Transactions– Parameters tpb_nnn– Result (commit or rollback)

• Queries– SQL statement text with/without parameters– Start/end time, CPU Time– Wait time– Plans (extremely useful to find performance bottlenecks!)

www.ibsurgeon.com

Page 14: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

Overhead of FBScanner – less than 15% (with 250 connections)

www.ibsurgeon.com

Page 15: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

15

Licensing

• Permanent per server – EUR 199/USD 299• For Tech Support – EUR 990/USD 1399 – Allows to setup up to 250 servers for 1 month each

• For ISV (run time bundles) – special prices and royalty agreement (no up front payments)

• Purchase here http://www.ibsurgeon.com/products/firebird_interbase/monitoring/FBScanner

www.ibsurgeon.com

Page 16: FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird

16

What next?Download trial http://www.ibsurgeon.com/download/FBScannerTrial.zip

Read feature matrixhttp://www.ibsurgeon.com/download/docs/fbscanner_feature_matrix_eng.pdf

Ask your questions:General – [email protected] ISVs – [email protected]

www.ibsurgeon.com