I have a multi-tenant database that returns vastly different numbers of rows depending on which tenant is being queried. Lately we are experiencing a parameter sniffing problem where Entity Framework (EF) queries executed against one tenant (TenantID = 1) take much longer than the same query against another tenant (TenantID = 2). I've done some research and determined that EF doesn't support query hints (see this question) that would allow me to force the query to recompile each time. Now I'm wondering if I can intercept the Sql query that is generated by EF and manually append "OPTION (OPTIMIZE FOR UNKNOWN)" before it is executed. Is this possible? Is EF pluggable such that I can modify the generated Sql before it is executed? Are there any examples of how to do this?
Can I modify the sql generated by Entity Framework before it's executed?
1.2k Views Asked by Mike At
1
There are 1 best solutions below
Related Questions in SQL-SERVER
- Dynamic query creation with Array like implementation
- 'pyodbc.Cursor' object has no attribute 'callproc', mssql with django
- Driver com.microsoft.sqlserver.jdbc.SQLServerDriver claims to not accept jdbcUrl, ${SPRING_DATASOURCE_URL}: GitHub Actions
- PHP Laravel SQLServer could not find driver
- Upsert huge amount of data by EFCore.BulkExtensions
- How to locate relevant tables or columns in a SQL Server database
- Cannot delete SQL datafile (.mdf) as its currently in use
- Writing query in CTE returning the wrong output
- Group By Sum and without Group by sum Amount is different
- plan_handle is always different for each query in SQL Server Cache
- Adding a different string to a table fails
- The specified data type in the EF modelBuilder doesn't correspond to the one that is created
- SQL71561: SqlComputedColumn: When column selected
- How to Solve Error Associated with Trusted Authority
- SQL Server Data Model and Insert Performance
Related Questions in ENTITY-FRAMEWORK
- Query (or LINQ in Entity Framework) for getting user's rank
- I'm trying to create a user with identity in .NET 8 with Entity Framework and I'm getting the following error, both in MySQL and SQL Server
- Entity Framework, Error when deleting data from multiple tables at the same time
- The instance of entity type 'User' cannot be tracked because another instance with the same key value for is already being tracked. Not structural
- Is it a good idea to use EF with Supabase?
- ModelState.IsValid is false when its Data Model Concurrency Token is non nullable
- EF6 Find function always go to the DB
- A second operation started on this context before a previous operation completed. in .NET Core
- Internal .NET Framework Data Provider error 1 in EF
- why cannot dotnet ef tools find my installed dotnet sdk and runtime
- Blazor hybrid cant add migration
- Access to all types, classes and interfaces from multiple projects through reflection in C#
- how to Store/Map Complex data type using EF?
- The database operation was expected to affect 1 row(s), on UpdateAsync
- Is it possible to generate database-agnostic migrations with Entity Framework?
Related Questions in MULTI-TENANT
- How would single sign-on work for my multi-tenant application?
- Finbuckel per tenant authenication using JWT
- Spring Boot Multi-Tenant : impossible to set different tenants
- Make Saleor multitenant
- Share Authetication/Authorization between multitenant Azure Web App and Web Job
- Entra multitenant collaboration
- Overriding Connection Logic in Hyn Multi-tenancy Package (v5.9) for Laravel
- Issue of "IllegalArgumentException: Not a managed type: MyEntity" for native image using spring boot 3
- Deploy from Azure Devops into someone else’s tenant
- Support for multi tenancy in SpringBoot 3 native image
- multiple azure chatbots doesn't authenticate
- Passing headers to Otel Gateway collector from nginx
- Issue with Spatie Laravel Multitenancy: Table 'laravel.users' doesn't exist (Still using the landlord instead of tenant)
- Tenancy For Laravel package not syncing resources between tenants
- Ofbiz multi-tenancy configuration
Related Questions in QUERY-HINTS
- Use table hints with variable table
- Giving Optimizer Hint on DDL Queries
- Is it possible to set a Hibernate Query Hint by default in a Spring Boot application?
- Add Query Hint inside of JPA Specification
- Using query hints to use a index in an inner table
- How to set custom hint via Spring JPA annotation
- Oracle index specified in index hint is invalid
- Optimize Oracle query with Hints
- How to use mysql query optimzer hints in Yii2?
- Is it possible to specify fetchgraph/loadgraph in SpringDataJpa @QueryHint annotation
- "hints" formatted query output using oracle jdbc driver
- C# Entity Framework use SQL options/hints
- Spark-SQL Query Hints for Join Performance Improvement
- Query Performance on case expression
- How can i add a QueryHint to a Hibernate Custom Query?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Have you tried working around the problem? You may be able to force EF to not use a param, e.g.:
...will use a param, but:
...won't, and I'll bet that:
...won't, either.