FBScanner: IBSurgeon's tool to solve all types of performance problems with Firebird - Presentation Transcript
FBScanner MR-machine for Firebird www.ibsurgeon.com 1
Applications send queries to Firebird and receive results via TCP/IP… www.ibsurgeon.com 2
What if we will intercept and analyze SQL traffic? www.ibsurgeon.com 3
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 4
…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 5
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 6
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 7
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 8 Who? When? What? www.ibsurgeon.com
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 9
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
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
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
Logging Connections All information from FBScannerViewer (database, login, role, IP,PID, etc) Transactions Parameterstpb_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
Overhead of FBScanner (with 250 connections) FBScanner is ON www.ibsurgeon.com
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 15 www.ibsurgeon.com
What next? Download trial http://www.ibsurgeon.com/download/FBScannerTrial.zip Read feature matrix http://www.ibsurgeon.com/download/docs/fbscanner_feature_matrix_eng.pdf Ask your questions: General – support@ib-aid.com ISVs – isv@ib-aid.com 16 www.ibsurgeon.com
FBScanner can be used to profile database applicati more
FBScanner can be used to profile database applications, monitor user activity, manage database connections (including client disconnection on both Classic and SuperServer architecture). It’s also ideal for troubleshooting INET errors (INET/inet_error: send errno = 10054), as well as auditing existing applications and performance tuning. less
0 comments
Post a comment